linear_algebra.ray
⟷
Mathlib.LinearAlgebra.Ray
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)
(last sync)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -505,7 +505,7 @@ theorem eq_zero_of_sameRay_neg_smul_right [NoZeroSMulDivisors R M] {r : R} (hr :
rcases h with (rfl | h₀ | ⟨r₁, r₂, hr₁, hr₂, h⟩)
· rfl
· simpa [hr.ne] using h₀
- · rw [← sub_eq_zero, smul_smul, ← sub_smul, smul_eq_zero] at h
+ · rw [← sub_eq_zero, smul_smul, ← sub_smul, smul_eq_zero] at h
refine' h.resolve_left (ne_of_gt <| sub_pos.2 _)
exact (mul_neg_of_pos_of_neg hr₂ hr).trans hr₁
#align eq_zero_of_same_ray_neg_smul_right eq_zero_of_sameRay_neg_smul_right
@@ -746,8 +746,8 @@ theorem sameRay_or_sameRay_neg_iff_not_linearIndependent {x y : M} :
· exact False.elim (hy (neg_eq_zero.1 hy0))
· refine' ⟨![r₁, r₂], _⟩; simp [h, hr₁.ne.symm]
· rcases h with ⟨m, hm, hmne⟩
- change m 0 • x + m 1 • y = 0 at hm
- rw [add_eq_zero_iff_eq_neg] at hm
+ change m 0 • x + m 1 • y = 0 at hm
+ rw [add_eq_zero_iff_eq_neg] at hm
rcases lt_trichotomy (m 0) 0 with (hm0 | hm0 | hm0) <;>
rcases lt_trichotomy (m 1) 0 with (hm1 | hm1 | hm1)
· refine'
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -652,7 +652,8 @@ variable [NoZeroSMulDivisors R M]
#print sameRay_smul_right_iff /-
@[simp]
theorem sameRay_smul_right_iff {v : M} {r : R} : SameRay R v (r • v) ↔ 0 ≤ r ∨ v = 0 :=
- ⟨fun hrv => or_iff_not_imp_left.2 fun hr => eq_zero_of_sameRay_neg_smul_right (not_le.1 hr) hrv,
+ ⟨fun hrv =>
+ Classical.or_iff_not_imp_left.2 fun hr => eq_zero_of_sameRay_neg_smul_right (not_le.1 hr) hrv,
or_imp.2 ⟨SameRay.sameRay_nonneg_smul_right v, fun h => h.symm ▸ SameRay.zero_left _⟩⟩
#align same_ray_smul_right_iff sameRay_smul_right_iff
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,8 +3,8 @@ Copyright (c) 2021 Joseph Myers. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Joseph Myers
-/
-import Mathbin.GroupTheory.Subgroup.Actions
-import Mathbin.LinearAlgebra.LinearIndependent
+import GroupTheory.Subgroup.Actions
+import LinearAlgebra.LinearIndependent
#align_import linear_algebra.ray from "leanprover-community/mathlib"@"ee05e9ce1322178f0c12004eb93c00d2c8c00ed2"
mathlib commit https://github.com/leanprover-community/mathlib/commit/32a7e535287f9c73f2e4d2aef306a39190f0b504
@@ -489,7 +489,7 @@ theorem sameRay_neg_iff : SameRay R (-x) (-y) ↔ SameRay R x y := by
#align same_ray_neg_iff sameRay_neg_iff
-/
-alias sameRay_neg_iff ↔ SameRay.of_neg SameRay.neg
+alias ⟨SameRay.of_neg, SameRay.neg⟩ := sameRay_neg_iff
#align same_ray.of_neg SameRay.of_neg
#align same_ray.neg SameRay.neg
mathlib commit https://github.com/leanprover-community/mathlib/commit/32a7e535287f9c73f2e4d2aef306a39190f0b504
@@ -389,7 +389,7 @@ when `G = Rˣ` -/
instance {R : Type _} : MulAction G (RayVector R M)
where
smul r := Subtype.map ((· • ·) r) fun a => (smul_ne_zero_iff_ne _).2
- mul_smul a b m := Subtype.ext <| mul_smul a b _
+ hMul_smul a b m := Subtype.ext <| hMul_smul a b _
one_smul m := Subtype.ext <| one_smul _ _
variable [SMulCommClass R G M]
@@ -399,7 +399,7 @@ variable [SMulCommClass R G M]
instance : MulAction G (Module.Ray R M)
where
smul r := Quotient.map ((· • ·) r) fun a b h => h.smul _
- mul_smul a b := Quotient.ind fun m => congr_arg Quotient.mk' <| mul_smul a b _
+ hMul_smul a b := Quotient.ind fun m => congr_arg Quotient.mk' <| mul_smul a b _
one_smul := Quotient.ind fun m => congr_arg Quotient.mk' <| one_smul _ _
#print Module.Ray.linearEquiv_smul_eq_map /-
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,15 +2,12 @@
Copyright (c) 2021 Joseph Myers. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Joseph Myers
-
-! This file was ported from Lean 3 source module linear_algebra.ray
-! leanprover-community/mathlib commit ee05e9ce1322178f0c12004eb93c00d2c8c00ed2
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.GroupTheory.Subgroup.Actions
import Mathbin.LinearAlgebra.LinearIndependent
+#align_import linear_algebra.ray from "leanprover-community/mathlib"@"ee05e9ce1322178f0c12004eb93c00d2c8c00ed2"
+
/-!
# Rays in modules
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -58,15 +58,19 @@ namespace SameRay
variable {x y z : M}
+#print SameRay.zero_left /-
@[simp]
theorem zero_left (y : M) : SameRay R 0 y :=
Or.inl rfl
#align same_ray.zero_left SameRay.zero_left
+-/
+#print SameRay.zero_right /-
@[simp]
theorem zero_right (x : M) : SameRay R x 0 :=
Or.inr <| Or.inl rfl
#align same_ray.zero_right SameRay.zero_right
+-/
#print SameRay.of_subsingleton /-
@[nontriviality]
@@ -75,40 +79,53 @@ theorem of_subsingleton [Subsingleton M] (x y : M) : SameRay R x y := by rw [Sub
#align same_ray.of_subsingleton SameRay.of_subsingleton
-/
+#print SameRay.of_subsingleton' /-
@[nontriviality]
theorem of_subsingleton' [Subsingleton R] (x y : M) : SameRay R x y :=
haveI := Module.subsingleton R M
of_subsingleton x y
#align same_ray.of_subsingleton' SameRay.of_subsingleton'
+-/
+#print SameRay.refl /-
/-- `same_ray` is reflexive. -/
@[refl]
theorem refl (x : M) : SameRay R x x := by
nontriviality R
exact Or.inr (Or.inr <| ⟨1, 1, zero_lt_one, zero_lt_one, rfl⟩)
#align same_ray.refl SameRay.refl
+-/
+#print SameRay.rfl /-
protected theorem rfl : SameRay R x x :=
refl _
#align same_ray.rfl SameRay.rfl
+-/
+#print SameRay.symm /-
/-- `same_ray` is symmetric. -/
@[symm]
theorem symm (h : SameRay R x y) : SameRay R y x :=
(or_left_comm.1 h).imp_right <| Or.imp_right fun ⟨r₁, r₂, h₁, h₂, h⟩ => ⟨r₂, r₁, h₂, h₁, h.symm⟩
#align same_ray.symm SameRay.symm
+-/
+#print SameRay.exists_pos /-
/-- If `x` and `y` are nonzero vectors on the same ray, then there exist positive numbers `r₁ r₂`
such that `r₁ • x = r₂ • y`. -/
theorem exists_pos (h : SameRay R x y) (hx : x ≠ 0) (hy : y ≠ 0) :
∃ r₁ r₂ : R, 0 < r₁ ∧ 0 < r₂ ∧ r₁ • x = r₂ • y :=
(h.resolve_left hx).resolve_left hy
#align same_ray.exists_pos SameRay.exists_pos
+-/
+#print SameRay.sameRay_comm /-
theorem SameRay.sameRay_comm : SameRay R x y ↔ SameRay R y x :=
⟨SameRay.symm, SameRay.symm⟩
#align same_ray_comm SameRay.sameRay_comm
+-/
+#print SameRay.trans /-
/-- `same_ray` is transitive unless the vector in the middle is zero and both other vectors are
nonzero. -/
theorem trans (hxy : SameRay R x y) (hyz : SameRay R y z) (hy : y = 0 → x = 0 ∨ z = 0) :
@@ -122,77 +139,103 @@ theorem trans (hxy : SameRay R x y) (hyz : SameRay R y z) (hy : y = 0 → x = 0
refine' Or.inr (Or.inr <| ⟨r₃ * r₁, r₂ * r₄, mul_pos hr₃ hr₁, mul_pos hr₂ hr₄, _⟩)
rw [mul_smul, mul_smul, h₁, ← h₂, smul_comm]
#align same_ray.trans SameRay.trans
+-/
+#print SameRay.sameRay_nonneg_smul_right /-
/-- A vector is in the same ray as a nonnegative multiple of itself. -/
theorem SameRay.sameRay_nonneg_smul_right (v : M) {r : R} (h : 0 ≤ r) : SameRay R v (r • v) :=
Or.inr <|
h.eq_or_lt.imp (fun h => h ▸ zero_smul R v) fun h =>
⟨r, 1, h, by nontriviality R; exact zero_lt_one, (one_smul _ _).symm⟩
#align same_ray_nonneg_smul_right SameRay.sameRay_nonneg_smul_right
+-/
+#print SameRay.sameRay_pos_smul_right /-
/-- A vector is in the same ray as a positive multiple of itself. -/
theorem SameRay.sameRay_pos_smul_right (v : M) {r : R} (h : 0 < r) : SameRay R v (r • v) :=
SameRay.sameRay_nonneg_smul_right v h.le
#align same_ray_pos_smul_right SameRay.sameRay_pos_smul_right
+-/
+#print SameRay.nonneg_smul_right /-
/-- A vector is in the same ray as a nonnegative multiple of one it is in the same ray as. -/
theorem nonneg_smul_right {r : R} (h : SameRay R x y) (hr : 0 ≤ r) : SameRay R x (r • y) :=
h.trans (SameRay.sameRay_nonneg_smul_right y hr) fun hy => Or.inr <| by rw [hy, smul_zero]
#align same_ray.nonneg_smul_right SameRay.nonneg_smul_right
+-/
+#print SameRay.pos_smul_right /-
/-- A vector is in the same ray as a positive multiple of one it is in the same ray as. -/
theorem pos_smul_right {r : R} (h : SameRay R x y) (hr : 0 < r) : SameRay R x (r • y) :=
h.nonneg_smul_right hr.le
#align same_ray.pos_smul_right SameRay.pos_smul_right
+-/
+#print SameRay.sameRay_nonneg_smul_left /-
/-- A nonnegative multiple of a vector is in the same ray as that vector. -/
theorem SameRay.sameRay_nonneg_smul_left (v : M) {r : R} (h : 0 ≤ r) : SameRay R (r • v) v :=
(SameRay.sameRay_nonneg_smul_right v h).symm
#align same_ray_nonneg_smul_left SameRay.sameRay_nonneg_smul_left
+-/
+#print SameRay.sameRay_pos_smul_left /-
/-- A positive multiple of a vector is in the same ray as that vector. -/
theorem SameRay.sameRay_pos_smul_left (v : M) {r : R} (h : 0 < r) : SameRay R (r • v) v :=
SameRay.sameRay_nonneg_smul_left v h.le
#align same_ray_pos_smul_left SameRay.sameRay_pos_smul_left
+-/
+#print SameRay.nonneg_smul_left /-
/-- A nonnegative multiple of a vector is in the same ray as one it is in the same ray as. -/
theorem nonneg_smul_left {r : R} (h : SameRay R x y) (hr : 0 ≤ r) : SameRay R (r • x) y :=
(h.symm.nonneg_smul_right hr).symm
#align same_ray.nonneg_smul_left SameRay.nonneg_smul_left
+-/
+#print SameRay.pos_smul_left /-
/-- A positive multiple of a vector is in the same ray as one it is in the same ray as. -/
theorem pos_smul_left {r : R} (h : SameRay R x y) (hr : 0 < r) : SameRay R (r • x) y :=
h.nonneg_smul_left hr.le
#align same_ray.pos_smul_left SameRay.pos_smul_left
+-/
+#print SameRay.map /-
/-- If two vectors are on the same ray then they remain so after applying a linear map. -/
theorem map (f : M →ₗ[R] N) (h : SameRay R x y) : SameRay R (f x) (f y) :=
(h.imp fun hx => by rw [hx, map_zero]) <|
Or.imp (fun hy => by rw [hy, map_zero]) fun ⟨r₁, r₂, hr₁, hr₂, h⟩ =>
⟨r₁, r₂, hr₁, hr₂, by rw [← f.map_smul, ← f.map_smul, h]⟩
#align same_ray.map SameRay.map
+-/
+#print Function.Injective.sameRay_map_iff /-
/-- The images of two vectors under an injective linear map are on the same ray if and only if the
original vectors are on the same ray. -/
theorem Function.Injective.sameRay_map_iff {F : Type _} [LinearMapClass F R M N] {f : F}
(hf : Function.Injective f) : SameRay R (f x) (f y) ↔ SameRay R x y := by
simp only [SameRay, map_zero, ← hf.eq_iff, map_smul]
#align function.injective.same_ray_map_iff Function.Injective.sameRay_map_iff
+-/
+#print SameRay.sameRay_map_iff /-
/-- The images of two vectors under a linear equivalence are on the same ray if and only if the
original vectors are on the same ray. -/
@[simp]
theorem SameRay.sameRay_map_iff (e : M ≃ₗ[R] N) : SameRay R (e x) (e y) ↔ SameRay R x y :=
Function.Injective.sameRay_map_iff (EquivLike.injective e)
#align same_ray_map_iff SameRay.sameRay_map_iff
+-/
+#print SameRay.smul /-
/-- If two vectors are on the same ray then both scaled by the same action are also on the same
ray. -/
theorem smul {S : Type _} [Monoid S] [DistribMulAction S M] [SMulCommClass R S M]
(h : SameRay R x y) (s : S) : SameRay R (s • x) (s • y) :=
h.map (s • (LinearMap.id : M →ₗ[R] M))
#align same_ray.smul SameRay.smul
+-/
+#print SameRay.add_left /-
/-- If `x` and `y` are on the same ray as `z`, then so is `x + y`. -/
theorem add_left (hx : SameRay R x z) (hy : SameRay R y z) : SameRay R (x + y) z :=
by
@@ -206,11 +249,14 @@ theorem add_left (hx : SameRay R x z) (hy : SameRay R y z) : SameRay R (x + y) z
· simp only [mul_smul, smul_add, add_smul, ← Hx, ← Hy]
rw [smul_comm]
#align same_ray.add_left SameRay.add_left
+-/
+#print SameRay.add_right /-
/-- If `y` and `z` are on the same ray as `x`, then so is `y + z`. -/
theorem add_right (hy : SameRay R x y) (hz : SameRay R x z) : SameRay R x (y + z) :=
(hy.symm.add_left hz.symm).symm
#align same_ray.add_right SameRay.add_right
+-/
end SameRay
@@ -223,9 +269,11 @@ def RayVector (R M : Type _) [Zero M] :=
#align ray_vector RayVector
-/
+#print RayVector.coe /-
instance RayVector.coe {R M : Type _} [Zero M] : Coe (RayVector R M) M :=
coeSubtype
#align ray_vector.has_coe RayVector.coe
+-/
instance {R M : Type _} [Zero M] [Nontrivial M] : Nonempty (RayVector R M) :=
let ⟨x, hx⟩ := exists_ne (0 : M)
@@ -251,47 +299,59 @@ def Module.Ray :=
variable {R M}
+#print equiv_iff_sameRay /-
/-- Equivalence of nonzero vectors, in terms of same_ray. -/
theorem equiv_iff_sameRay {v₁ v₂ : RayVector R M} : v₁ ≈ v₂ ↔ SameRay R (v₁ : M) v₂ :=
Iff.rfl
#align equiv_iff_same_ray equiv_iff_sameRay
+-/
variable (R)
+#print rayOfNeZero /-
/-- The ray given by a nonzero vector. -/
protected def rayOfNeZero (v : M) (h : v ≠ 0) : Module.Ray R M :=
⟦⟨v, h⟩⟧
#align ray_of_ne_zero rayOfNeZero
+-/
+#print Module.Ray.ind /-
/-- An induction principle for `module.ray`, used as `induction x using module.ray.ind`. -/
theorem Module.Ray.ind {C : Module.Ray R M → Prop} (h : ∀ (v) (hv : v ≠ 0), C (rayOfNeZero R v hv))
(x : Module.Ray R M) : C x :=
Quotient.ind (Subtype.rec <| h) x
#align module.ray.ind Module.Ray.ind
+-/
variable {R}
instance [Nontrivial M] : Nonempty (Module.Ray R M) :=
Nonempty.map Quotient.mk' inferInstance
+#print ray_eq_iff /-
/-- The rays given by two nonzero vectors are equal if and only if those vectors
satisfy `same_ray`. -/
theorem ray_eq_iff {v₁ v₂ : M} (hv₁ : v₁ ≠ 0) (hv₂ : v₂ ≠ 0) :
rayOfNeZero R _ hv₁ = rayOfNeZero R _ hv₂ ↔ SameRay R v₁ v₂ :=
Quotient.eq'
#align ray_eq_iff ray_eq_iff
+-/
+#print ray_pos_smul /-
/-- The ray given by a positive multiple of a nonzero vector. -/
@[simp]
theorem ray_pos_smul {v : M} (h : v ≠ 0) {r : R} (hr : 0 < r) (hrv : r • v ≠ 0) :
rayOfNeZero R (r • v) hrv = rayOfNeZero R v h :=
(ray_eq_iff _ _).2 <| SameRay.sameRay_pos_smul_left v hr
#align ray_pos_smul ray_pos_smul
+-/
+#print RayVector.mapLinearEquiv /-
/-- An equivalence between modules implies an equivalence between ray vectors. -/
def RayVector.mapLinearEquiv (e : M ≃ₗ[R] N) : RayVector R M ≃ RayVector R N :=
Equiv.subtypeEquiv e.toEquiv fun _ => e.map_ne_zero_iff.symm
#align ray_vector.map_linear_equiv RayVector.mapLinearEquiv
+-/
#print Module.Ray.map /-
/-- An equivalence between modules implies an equivalence between rays. -/
@@ -301,11 +361,13 @@ def Module.Ray.map (e : M ≃ₗ[R] N) : Module.Ray R M ≃ Module.Ray R N :=
#align module.ray.map Module.Ray.map
-/
+#print Module.Ray.map_apply /-
@[simp]
theorem Module.Ray.map_apply (e : M ≃ₗ[R] N) (v : M) (hv : v ≠ 0) :
Module.Ray.map e (rayOfNeZero _ v hv) = rayOfNeZero _ (e v) (e.map_ne_zero_iff.2 hv) :=
rfl
#align module.ray.map_apply Module.Ray.map_apply
+-/
#print Module.Ray.map_refl /-
@[simp]
@@ -314,10 +376,12 @@ theorem Module.Ray.map_refl : (Module.Ray.map <| LinearEquiv.refl R M) = Equiv.r
#align module.ray.map_refl Module.Ray.map_refl
-/
+#print Module.Ray.map_symm /-
@[simp]
theorem Module.Ray.map_symm (e : M ≃ₗ[R] N) : (Module.Ray.map e).symm = Module.Ray.map e.symm :=
rfl
#align module.ray.map_symm Module.Ray.map_symm
+-/
section Action
@@ -341,23 +405,28 @@ instance : MulAction G (Module.Ray R M)
mul_smul a b := Quotient.ind fun m => congr_arg Quotient.mk' <| mul_smul a b _
one_smul := Quotient.ind fun m => congr_arg Quotient.mk' <| one_smul _ _
+#print Module.Ray.linearEquiv_smul_eq_map /-
/-- The action via `linear_equiv.apply_distrib_mul_action` corresponds to `module.ray.map`. -/
@[simp]
theorem Module.Ray.linearEquiv_smul_eq_map (e : M ≃ₗ[R] M) (v : Module.Ray R M) :
e • v = Module.Ray.map e v :=
rfl
#align module.ray.linear_equiv_smul_eq_map Module.Ray.linearEquiv_smul_eq_map
+-/
+#print smul_rayOfNeZero /-
@[simp]
theorem smul_rayOfNeZero (g : G) (v : M) (hv) :
g • rayOfNeZero R v hv = rayOfNeZero R (g • v) ((smul_ne_zero_iff_ne _).2 hv) :=
rfl
#align smul_ray_of_ne_zero smul_rayOfNeZero
+-/
end Action
namespace Module.Ray
+#print Module.Ray.units_smul_of_pos /-
/-- Scaling by a positive unit is a no-op. -/
theorem units_smul_of_pos (u : Rˣ) (hu : 0 < (u : R)) (v : Module.Ray R M) : u • v = v :=
by
@@ -365,17 +434,22 @@ theorem units_smul_of_pos (u : Rˣ) (hu : 0 < (u : R)) (v : Module.Ray R M) : u
rw [smul_rayOfNeZero, ray_eq_iff]
exact SameRay.sameRay_pos_smul_left _ hu
#align module.ray.units_smul_of_pos Module.Ray.units_smul_of_pos
+-/
+#print Module.Ray.someRayVector /-
/-- An arbitrary `ray_vector` giving a ray. -/
def someRayVector (x : Module.Ray R M) : RayVector R M :=
Quotient.out x
#align module.ray.some_ray_vector Module.Ray.someRayVector
+-/
+#print Module.Ray.someRayVector_ray /-
/-- The ray of `some_ray_vector`. -/
@[simp]
theorem someRayVector_ray (x : Module.Ray R M) : (⟦x.someRayVector⟧ : Module.Ray R M) = x :=
Quotient.out_eq _
#align module.ray.some_ray_vector_ray Module.Ray.someRayVector_ray
+-/
#print Module.Ray.someVector /-
/-- An arbitrary nonzero vector giving a ray. -/
@@ -384,17 +458,21 @@ def someVector (x : Module.Ray R M) : M :=
#align module.ray.some_vector Module.Ray.someVector
-/
+#print Module.Ray.someVector_ne_zero /-
/-- `some_vector` is nonzero. -/
@[simp]
theorem someVector_ne_zero (x : Module.Ray R M) : x.someVector ≠ 0 :=
x.someRayVector.property
#align module.ray.some_vector_ne_zero Module.Ray.someVector_ne_zero
+-/
+#print Module.Ray.someVector_ray /-
/-- The ray of `some_vector`. -/
@[simp]
theorem someVector_ray (x : Module.Ray R M) : rayOfNeZero R _ x.someVector_ne_zero = x :=
(congr_arg _ (Subtype.coe_eta _ _) : _).trans x.out_eq
#align module.ray.some_vector_ray Module.Ray.someVector_ray
+-/
end Module.Ray
@@ -406,19 +484,24 @@ variable {R : Type _} [StrictOrderedCommRing R]
variable {M N : Type _} [AddCommGroup M] [AddCommGroup N] [Module R M] [Module R N] {x y : M}
+#print sameRay_neg_iff /-
/-- `same_ray.neg` as an `iff`. -/
@[simp]
theorem sameRay_neg_iff : SameRay R (-x) (-y) ↔ SameRay R x y := by
simp only [SameRay, neg_eq_zero, smul_neg, neg_inj]
#align same_ray_neg_iff sameRay_neg_iff
+-/
alias sameRay_neg_iff ↔ SameRay.of_neg SameRay.neg
#align same_ray.of_neg SameRay.of_neg
#align same_ray.neg SameRay.neg
+#print sameRay_neg_swap /-
theorem sameRay_neg_swap : SameRay R (-x) y ↔ SameRay R x (-y) := by rw [← sameRay_neg_iff, neg_neg]
#align same_ray_neg_swap sameRay_neg_swap
+-/
+#print eq_zero_of_sameRay_neg_smul_right /-
theorem eq_zero_of_sameRay_neg_smul_right [NoZeroSMulDivisors R M] {r : R} (hr : r < 0)
(h : SameRay R x (r • x)) : x = 0 :=
by
@@ -429,7 +512,9 @@ theorem eq_zero_of_sameRay_neg_smul_right [NoZeroSMulDivisors R M] {r : R} (hr :
refine' h.resolve_left (ne_of_gt <| sub_pos.2 _)
exact (mul_neg_of_pos_of_neg hr₂ hr).trans hr₁
#align eq_zero_of_same_ray_neg_smul_right eq_zero_of_sameRay_neg_smul_right
+-/
+#print eq_zero_of_sameRay_self_neg /-
/-- If a vector is in the same ray as its negation, that vector is zero. -/
theorem eq_zero_of_sameRay_self_neg [NoZeroSMulDivisors R M] (h : SameRay R x (-x)) : x = 0 :=
by
@@ -437,6 +522,7 @@ theorem eq_zero_of_sameRay_self_neg [NoZeroSMulDivisors R M] (h : SameRay R x (-
refine' eq_zero_of_sameRay_neg_smul_right (neg_lt_zero.2 (zero_lt_one' R)) _
rwa [neg_one_smul]
#align eq_zero_of_same_ray_self_neg eq_zero_of_sameRay_self_neg
+-/
namespace RayVector
@@ -444,11 +530,13 @@ namespace RayVector
instance {R : Type _} : Neg (RayVector R M) :=
⟨fun v => ⟨-v, neg_ne_zero.2 v.Prop⟩⟩
+#print RayVector.coe_neg /-
/-- Negating a nonzero vector commutes with coercion to the underlying module. -/
@[simp, norm_cast]
theorem coe_neg {R : Type _} (v : RayVector R M) : ↑(-v) = -(v : M) :=
rfl
#align ray_vector.coe_neg RayVector.coe_neg
+-/
/-- Negating a nonzero vector twice produces the original vector. -/
instance {R : Type _} : InvolutiveNeg (RayVector R M)
@@ -456,11 +544,13 @@ instance {R : Type _} : InvolutiveNeg (RayVector R M)
neg := Neg.neg
neg_neg v := by rw [Subtype.ext_iff, coe_neg, coe_neg, neg_neg]
+#print RayVector.equiv_neg_iff /-
/-- If two nonzero vectors are equivalent, so are their negations. -/
@[simp]
theorem equiv_neg_iff {v₁ v₂ : RayVector R M} : -v₁ ≈ -v₂ ↔ v₁ ≈ v₂ :=
sameRay_neg_iff
#align ray_vector.equiv_neg_iff RayVector.equiv_neg_iff
+-/
end RayVector
@@ -470,12 +560,14 @@ variable (R)
instance : Neg (Module.Ray R M) :=
⟨Quotient.map (fun v => -v) fun v₁ v₂ => RayVector.equiv_neg_iff.2⟩
+#print neg_rayOfNeZero /-
/-- The ray given by the negation of a nonzero vector. -/
@[simp]
theorem neg_rayOfNeZero (v : M) (h : v ≠ 0) :
-rayOfNeZero R _ h = rayOfNeZero R (-v) (neg_ne_zero.2 h) :=
rfl
#align neg_ray_of_ne_zero neg_rayOfNeZero
+-/
namespace Module.Ray
@@ -489,6 +581,7 @@ instance : InvolutiveNeg (Module.Ray R M)
variable {R M}
+#print Module.Ray.ne_neg_self /-
/-- A ray does not equal its own negation. -/
theorem ne_neg_self [NoZeroSMulDivisors R M] (x : Module.Ray R M) : x ≠ -x :=
by
@@ -496,26 +589,33 @@ theorem ne_neg_self [NoZeroSMulDivisors R M] (x : Module.Ray R M) : x ≠ -x :=
rw [neg_rayOfNeZero, Ne.def, ray_eq_iff]
exact mt eq_zero_of_sameRay_self_neg hx
#align module.ray.ne_neg_self Module.Ray.ne_neg_self
+-/
+#print Module.Ray.neg_units_smul /-
theorem neg_units_smul (u : Rˣ) (v : Module.Ray R M) : -u • v = -(u • v) :=
by
induction v using Module.Ray.ind
simp only [smul_rayOfNeZero, Units.smul_def, Units.val_neg, neg_smul, neg_rayOfNeZero]
#align module.ray.neg_units_smul Module.Ray.neg_units_smul
+-/
+#print Module.Ray.units_smul_of_neg /-
/-- Scaling by a negative unit is negation. -/
theorem units_smul_of_neg (u : Rˣ) (hu : (u : R) < 0) (v : Module.Ray R M) : u • v = -v :=
by
rw [← neg_inj, neg_neg, ← neg_units_smul, units_smul_of_pos]
rwa [Units.val_neg, Right.neg_pos_iff]
#align module.ray.units_smul_of_neg Module.Ray.units_smul_of_neg
+-/
+#print Module.Ray.map_neg /-
@[simp]
protected theorem map_neg (f : M ≃ₗ[R] N) (v : Module.Ray R M) : map f (-v) = -map f v :=
by
induction' v using Module.Ray.ind with g hg
simp
#align module.ray.map_neg Module.Ray.map_neg
+-/
end Module.Ray
@@ -527,6 +627,7 @@ variable {R : Type _} [LinearOrderedCommRing R]
variable {M : Type _} [AddCommGroup M] [Module R M]
+#print sameRay_of_mem_orbit /-
/-- `same_ray` follows from membership of `mul_action.orbit` for the `units.pos_subgroup`. -/
theorem sameRay_of_mem_orbit {v₁ v₂ : M} (h : v₁ ∈ MulAction.orbit (Units.posSubgroup R) v₂) :
SameRay R v₁ v₂ :=
@@ -534,7 +635,9 @@ theorem sameRay_of_mem_orbit {v₁ v₂ : M} (h : v₁ ∈ MulAction.orbit (Unit
rcases h with ⟨⟨r, hr : 0 < (r : R)⟩, rfl : r • v₂ = v₁⟩
exact SameRay.sameRay_pos_smul_left _ hr
#align same_ray_of_mem_orbit sameRay_of_mem_orbit
+-/
+#print units_inv_smul /-
/-- Scaling by an inverse unit is the same as scaling by itself. -/
@[simp]
theorem units_inv_smul (u : Rˣ) (v : Module.Ray R M) : u⁻¹ • v = u • v :=
@@ -543,69 +646,91 @@ theorem units_inv_smul (u : Rˣ) (v : Module.Ray R M) : u⁻¹ • v = u • v :
Eq.symm <| (u⁻¹ • v).units_smul_of_pos _ <| mul_self_pos.2 u.NeZero
_ = u • v := by rw [mul_smul, smul_inv_smul]
#align units_inv_smul units_inv_smul
+-/
section
variable [NoZeroSMulDivisors R M]
+#print sameRay_smul_right_iff /-
@[simp]
theorem sameRay_smul_right_iff {v : M} {r : R} : SameRay R v (r • v) ↔ 0 ≤ r ∨ v = 0 :=
⟨fun hrv => or_iff_not_imp_left.2 fun hr => eq_zero_of_sameRay_neg_smul_right (not_le.1 hr) hrv,
or_imp.2 ⟨SameRay.sameRay_nonneg_smul_right v, fun h => h.symm ▸ SameRay.zero_left _⟩⟩
#align same_ray_smul_right_iff sameRay_smul_right_iff
+-/
+#print sameRay_smul_right_iff_of_ne /-
/-- A nonzero vector is in the same ray as a multiple of itself if and only if that multiple
is positive. -/
theorem sameRay_smul_right_iff_of_ne {v : M} (hv : v ≠ 0) {r : R} (hr : r ≠ 0) :
SameRay R v (r • v) ↔ 0 < r := by
simp only [sameRay_smul_right_iff, hv, or_false_iff, hr.symm.le_iff_lt]
#align same_ray_smul_right_iff_of_ne sameRay_smul_right_iff_of_ne
+-/
+#print sameRay_smul_left_iff /-
@[simp]
theorem sameRay_smul_left_iff {v : M} {r : R} : SameRay R (r • v) v ↔ 0 ≤ r ∨ v = 0 :=
SameRay.sameRay_comm.trans sameRay_smul_right_iff
#align same_ray_smul_left_iff sameRay_smul_left_iff
+-/
+#print sameRay_smul_left_iff_of_ne /-
/-- A multiple of a nonzero vector is in the same ray as that vector if and only if that multiple
is positive. -/
theorem sameRay_smul_left_iff_of_ne {v : M} (hv : v ≠ 0) {r : R} (hr : r ≠ 0) :
SameRay R (r • v) v ↔ 0 < r :=
SameRay.sameRay_comm.trans (sameRay_smul_right_iff_of_ne hv hr)
#align same_ray_smul_left_iff_of_ne sameRay_smul_left_iff_of_ne
+-/
+#print sameRay_neg_smul_right_iff /-
@[simp]
theorem sameRay_neg_smul_right_iff {v : M} {r : R} : SameRay R (-v) (r • v) ↔ r ≤ 0 ∨ v = 0 := by
rw [← sameRay_neg_iff, neg_neg, ← neg_smul, sameRay_smul_right_iff, neg_nonneg]
#align same_ray_neg_smul_right_iff sameRay_neg_smul_right_iff
+-/
+#print sameRay_neg_smul_right_iff_of_ne /-
theorem sameRay_neg_smul_right_iff_of_ne {v : M} {r : R} (hv : v ≠ 0) (hr : r ≠ 0) :
SameRay R (-v) (r • v) ↔ r < 0 := by
simp only [sameRay_neg_smul_right_iff, hv, or_false_iff, hr.le_iff_lt]
#align same_ray_neg_smul_right_iff_of_ne sameRay_neg_smul_right_iff_of_ne
+-/
+#print sameRay_neg_smul_left_iff /-
@[simp]
theorem sameRay_neg_smul_left_iff {v : M} {r : R} : SameRay R (r • v) (-v) ↔ r ≤ 0 ∨ v = 0 :=
SameRay.sameRay_comm.trans sameRay_neg_smul_right_iff
#align same_ray_neg_smul_left_iff sameRay_neg_smul_left_iff
+-/
+#print sameRay_neg_smul_left_iff_of_ne /-
theorem sameRay_neg_smul_left_iff_of_ne {v : M} {r : R} (hv : v ≠ 0) (hr : r ≠ 0) :
SameRay R (r • v) (-v) ↔ r < 0 :=
SameRay.sameRay_comm.trans <| sameRay_neg_smul_right_iff_of_ne hv hr
#align same_ray_neg_smul_left_iff_of_ne sameRay_neg_smul_left_iff_of_ne
+-/
+#print units_smul_eq_self_iff /-
@[simp]
theorem units_smul_eq_self_iff {u : Rˣ} {v : Module.Ray R M} : u • v = v ↔ (0 : R) < u :=
by
induction' v using Module.Ray.ind with v hv
simp only [smul_rayOfNeZero, ray_eq_iff, Units.smul_def, sameRay_smul_left_iff_of_ne hv u.ne_zero]
#align units_smul_eq_self_iff units_smul_eq_self_iff
+-/
+#print units_smul_eq_neg_iff /-
@[simp]
theorem units_smul_eq_neg_iff {u : Rˣ} {v : Module.Ray R M} : u • v = -v ↔ ↑u < (0 : R) := by
rw [← neg_inj, neg_neg, ← Module.Ray.neg_units_smul, units_smul_eq_self_iff, Units.val_neg,
neg_pos]
#align units_smul_eq_neg_iff units_smul_eq_neg_iff
+-/
+#print sameRay_or_sameRay_neg_iff_not_linearIndependent /-
/-- Two vectors are in the same ray, or the first is in the same ray as the negation of the
second, if and only if they are not linearly independent. -/
theorem sameRay_or_sameRay_neg_iff_not_linearIndependent {x y : M} :
@@ -642,7 +767,9 @@ theorem sameRay_or_sameRay_neg_iff_not_linearIndependent {x y : M} :
· refine' Or.inr (Or.inr (Or.inr ⟨m 0, m 1, hm0, hm1, _⟩))
simp [hm]
#align same_ray_or_same_ray_neg_iff_not_linear_independent sameRay_or_sameRay_neg_iff_not_linearIndependent
+-/
+#print sameRay_or_ne_zero_and_sameRay_neg_iff_not_linearIndependent /-
/-- Two vectors are in the same ray, or they are nonzero and the first is in the same ray as the
negation of the second, if and only if they are not linearly independent. -/
theorem sameRay_or_ne_zero_and_sameRay_neg_iff_not_linearIndependent {x y : M} :
@@ -652,6 +779,7 @@ theorem sameRay_or_ne_zero_and_sameRay_neg_iff_not_linearIndependent {x y : M} :
by_cases hx : x = 0; · simp [hx]
by_cases hy : y = 0 <;> simp [hx, hy]
#align same_ray_or_ne_zero_and_same_ray_neg_iff_not_linear_independent sameRay_or_ne_zero_and_sameRay_neg_iff_not_linearIndependent
+-/
end
@@ -663,17 +791,22 @@ variable {R : Type _} [LinearOrderedField R]
variable {M : Type _} [AddCommGroup M] [Module R M] {x y v₁ v₂ : M}
+#print SameRay.exists_pos_left /-
theorem exists_pos_left (h : SameRay R x y) (hx : x ≠ 0) (hy : y ≠ 0) :
∃ r : R, 0 < r ∧ r • x = y :=
let ⟨r₁, r₂, hr₁, hr₂, h⟩ := h.exists_pos hx hy
⟨r₂⁻¹ * r₁, mul_pos (inv_pos.2 hr₂) hr₁, by rw [mul_smul, h, inv_smul_smul₀ hr₂.ne']⟩
#align same_ray.exists_pos_left SameRay.exists_pos_left
+-/
+#print SameRay.exists_pos_right /-
theorem exists_pos_right (h : SameRay R x y) (hx : x ≠ 0) (hy : y ≠ 0) :
∃ r : R, 0 < r ∧ x = r • y :=
(h.symm.exists_pos_left hy hx).imp fun _ => And.imp_right Eq.symm
#align same_ray.exists_pos_right SameRay.exists_pos_right
+-/
+#print SameRay.exists_nonneg_left /-
/-- If a vector `v₂` is on the same ray as a nonzero vector `v₁`, then it is equal to `c • v₁` for
some nonnegative `c`. -/
theorem exists_nonneg_left (h : SameRay R x y) (hx : x ≠ 0) : ∃ r : R, 0 ≤ r ∧ r • x = y :=
@@ -682,13 +815,17 @@ theorem exists_nonneg_left (h : SameRay R x y) (hx : x ≠ 0) : ∃ r : R, 0 ≤
· exact ⟨0, le_rfl, zero_smul _ _⟩
· exact (h.exists_pos_left hx hy).imp fun _ => And.imp_left le_of_lt
#align same_ray.exists_nonneg_left SameRay.exists_nonneg_left
+-/
+#print SameRay.exists_nonneg_right /-
/-- If a vector `v₁` is on the same ray as a nonzero vector `v₂`, then it is equal to `c • v₂` for
some nonnegative `c`. -/
theorem exists_nonneg_right (h : SameRay R x y) (hy : y ≠ 0) : ∃ r : R, 0 ≤ r ∧ x = r • y :=
(h.symm.exists_nonneg_left hy).imp fun _ => And.imp_right Eq.symm
#align same_ray.exists_nonneg_right SameRay.exists_nonneg_right
+-/
+#print SameRay.exists_eq_smul_add /-
/-- If vectors `v₁` and `v₂` are on the same ray, then for some nonnegative `a b`, `a + b = 1`, we
have `v₁ = a • (v₁ + v₂)` and `v₂ = b • (v₁ + v₂)`. -/
theorem exists_eq_smul_add (h : SameRay R v₁ v₂) :
@@ -704,13 +841,16 @@ theorem exists_eq_smul_add (h : SameRay R v₁ v₂) :
· rw [div_eq_inv_mul, mul_smul, smul_add, ← H, ← add_smul, add_comm r₂, inv_smul_smul₀ h₁₂.ne']
· rw [div_eq_inv_mul, mul_smul, smul_add, H, ← add_smul, add_comm r₂, inv_smul_smul₀ h₁₂.ne']
#align same_ray.exists_eq_smul_add SameRay.exists_eq_smul_add
+-/
+#print SameRay.exists_eq_smul /-
/-- If vectors `v₁` and `v₂` are on the same ray, then they are nonnegative multiples of the same
vector. Actually, this vector can be assumed to be `v₁ + v₂`, see `same_ray.exists_eq_smul_add`. -/
theorem exists_eq_smul (h : SameRay R v₁ v₂) :
∃ (u : M) (a b : R), 0 ≤ a ∧ 0 ≤ b ∧ a + b = 1 ∧ v₁ = a • u ∧ v₂ = b • u :=
⟨v₁ + v₂, h.exists_eq_smul_add⟩
#align same_ray.exists_eq_smul SameRay.exists_eq_smul
+-/
end SameRay
@@ -720,6 +860,7 @@ variable {R : Type _} [LinearOrderedField R]
variable {M : Type _} [AddCommGroup M] [Module R M] {x y : M}
+#print exists_pos_left_iff_sameRay /-
theorem exists_pos_left_iff_sameRay (hx : x ≠ 0) (hy : y ≠ 0) :
(∃ r : R, 0 < r ∧ r • x = y) ↔ SameRay R x y :=
by
@@ -727,7 +868,9 @@ theorem exists_pos_left_iff_sameRay (hx : x ≠ 0) (hy : y ≠ 0) :
rcases h with ⟨r, hr, rfl⟩
exact SameRay.sameRay_pos_smul_right x hr
#align exists_pos_left_iff_same_ray exists_pos_left_iff_sameRay
+-/
+#print exists_pos_left_iff_sameRay_and_ne_zero /-
theorem exists_pos_left_iff_sameRay_and_ne_zero (hx : x ≠ 0) :
(∃ r : R, 0 < r ∧ r • x = y) ↔ SameRay R x y ∧ y ≠ 0 :=
by
@@ -737,7 +880,9 @@ theorem exists_pos_left_iff_sameRay_and_ne_zero (hx : x ≠ 0) :
· rintro ⟨hxy, hy⟩
exact (exists_pos_left_iff_sameRay hx hy).2 hxy
#align exists_pos_left_iff_same_ray_and_ne_zero exists_pos_left_iff_sameRay_and_ne_zero
+-/
+#print exists_nonneg_left_iff_sameRay /-
theorem exists_nonneg_left_iff_sameRay (hx : x ≠ 0) :
(∃ r : R, 0 ≤ r ∧ r • x = y) ↔ SameRay R x y :=
by
@@ -745,21 +890,28 @@ theorem exists_nonneg_left_iff_sameRay (hx : x ≠ 0) :
rcases h with ⟨r, hr, rfl⟩
exact SameRay.sameRay_nonneg_smul_right x hr
#align exists_nonneg_left_iff_same_ray exists_nonneg_left_iff_sameRay
+-/
+#print exists_pos_right_iff_sameRay /-
theorem exists_pos_right_iff_sameRay (hx : x ≠ 0) (hy : y ≠ 0) :
(∃ r : R, 0 < r ∧ x = r • y) ↔ SameRay R x y := by
simpa only [SameRay.sameRay_comm, eq_comm] using exists_pos_left_iff_sameRay hy hx
#align exists_pos_right_iff_same_ray exists_pos_right_iff_sameRay
+-/
+#print exists_pos_right_iff_sameRay_and_ne_zero /-
theorem exists_pos_right_iff_sameRay_and_ne_zero (hy : y ≠ 0) :
(∃ r : R, 0 < r ∧ x = r • y) ↔ SameRay R x y ∧ x ≠ 0 := by
simpa only [SameRay.sameRay_comm, eq_comm] using exists_pos_left_iff_sameRay_and_ne_zero hy
#align exists_pos_right_iff_same_ray_and_ne_zero exists_pos_right_iff_sameRay_and_ne_zero
+-/
+#print exists_nonneg_right_iff_sameRay /-
theorem exists_nonneg_right_iff_sameRay (hy : y ≠ 0) :
(∃ r : R, 0 ≤ r ∧ x = r • y) ↔ SameRay R x y := by
simpa only [SameRay.sameRay_comm, eq_comm] using exists_nonneg_left_iff_sameRay hy
#align exists_nonneg_right_iff_same_ray exists_nonneg_right_iff_sameRay
+-/
end LinearOrderedField
mathlib commit https://github.com/leanprover-community/mathlib/commit/7e5137f579de09a059a5ce98f364a04e221aabf0
@@ -542,7 +542,6 @@ theorem units_inv_smul (u : Rˣ) (v : Module.Ray R M) : u⁻¹ • v = u • v :
u⁻¹ • v = (u * u) • u⁻¹ • v :=
Eq.symm <| (u⁻¹ • v).units_smul_of_pos _ <| mul_self_pos.2 u.NeZero
_ = u • v := by rw [mul_smul, smul_inv_smul]
-
#align units_inv_smul units_inv_smul
section
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -425,7 +425,7 @@ theorem eq_zero_of_sameRay_neg_smul_right [NoZeroSMulDivisors R M] {r : R} (hr :
rcases h with (rfl | h₀ | ⟨r₁, r₂, hr₁, hr₂, h⟩)
· rfl
· simpa [hr.ne] using h₀
- · rw [← sub_eq_zero, smul_smul, ← sub_smul, smul_eq_zero] at h
+ · rw [← sub_eq_zero, smul_smul, ← sub_smul, smul_eq_zero] at h
refine' h.resolve_left (ne_of_gt <| sub_pos.2 _)
exact (mul_neg_of_pos_of_neg hr₂ hr).trans hr₁
#align eq_zero_of_same_ray_neg_smul_right eq_zero_of_sameRay_neg_smul_right
@@ -624,8 +624,8 @@ theorem sameRay_or_sameRay_neg_iff_not_linearIndependent {x y : M} :
· exact False.elim (hy (neg_eq_zero.1 hy0))
· refine' ⟨![r₁, r₂], _⟩; simp [h, hr₁.ne.symm]
· rcases h with ⟨m, hm, hmne⟩
- change m 0 • x + m 1 • y = 0 at hm
- rw [add_eq_zero_iff_eq_neg] at hm
+ change m 0 • x + m 1 • y = 0 at hm
+ rw [add_eq_zero_iff_eq_neg] at hm
rcases lt_trichotomy (m 0) 0 with (hm0 | hm0 | hm0) <;>
rcases lt_trichotomy (m 1) 0 with (hm1 | hm1 | hm1)
· refine'
@@ -709,7 +709,7 @@ theorem exists_eq_smul_add (h : SameRay R v₁ v₂) :
/-- If vectors `v₁` and `v₂` are on the same ray, then they are nonnegative multiples of the same
vector. Actually, this vector can be assumed to be `v₁ + v₂`, see `same_ray.exists_eq_smul_add`. -/
theorem exists_eq_smul (h : SameRay R v₁ v₂) :
- ∃ (u : M)(a b : R), 0 ≤ a ∧ 0 ≤ b ∧ a + b = 1 ∧ v₁ = a • u ∧ v₂ = b • u :=
+ ∃ (u : M) (a b : R), 0 ≤ a ∧ 0 ≤ b ∧ a + b = 1 ∧ v₁ = a • u ∧ v₂ = b • u :=
⟨v₁ + v₂, h.exists_eq_smul_add⟩
#align same_ray.exists_eq_smul SameRay.exists_eq_smul
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -31,7 +31,7 @@ common positive multiple.
noncomputable section
-open BigOperators
+open scoped BigOperators
section StrictOrderedCommSemiring
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -58,23 +58,11 @@ namespace SameRay
variable {x y z : M}
-/- warning: same_ray.zero_left -> SameRay.zero_left is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] (y : M), SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))))) y
-but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] (y : M), SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)))) y
-Case conversion may be inaccurate. Consider using '#align same_ray.zero_left SameRay.zero_leftₓ'. -/
@[simp]
theorem zero_left (y : M) : SameRay R 0 y :=
Or.inl rfl
#align same_ray.zero_left SameRay.zero_left
-/- warning: same_ray.zero_right -> SameRay.zero_right is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] (x : M), SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))
-but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] (x : M), SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 x (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2))))
-Case conversion may be inaccurate. Consider using '#align same_ray.zero_right SameRay.zero_rightₓ'. -/
@[simp]
theorem zero_right (x : M) : SameRay R x 0 :=
Or.inr <| Or.inl rfl
@@ -87,24 +75,12 @@ theorem of_subsingleton [Subsingleton M] (x y : M) : SameRay R x y := by rw [Sub
#align same_ray.of_subsingleton SameRay.of_subsingleton
-/
-/- warning: same_ray.of_subsingleton' -> SameRay.of_subsingleton' is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] [_inst_7 : Subsingleton.{succ u1} R] (x : M) (y : M), SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x y
-but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] [_inst_7 : Subsingleton.{succ u2} R] (x : M) (y : M), SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 x y
-Case conversion may be inaccurate. Consider using '#align same_ray.of_subsingleton' SameRay.of_subsingleton'ₓ'. -/
@[nontriviality]
theorem of_subsingleton' [Subsingleton R] (x y : M) : SameRay R x y :=
haveI := Module.subsingleton R M
of_subsingleton x y
#align same_ray.of_subsingleton' SameRay.of_subsingleton'
-/- warning: same_ray.refl -> SameRay.refl is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] (x : M), SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x x
-but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] (x : M), SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 x x
-Case conversion may be inaccurate. Consider using '#align same_ray.refl SameRay.reflₓ'. -/
/-- `same_ray` is reflexive. -/
@[refl]
theorem refl (x : M) : SameRay R x x := by
@@ -112,31 +88,16 @@ theorem refl (x : M) : SameRay R x x := by
exact Or.inr (Or.inr <| ⟨1, 1, zero_lt_one, zero_lt_one, rfl⟩)
#align same_ray.refl SameRay.refl
-/- warning: same_ray.rfl -> SameRay.rfl is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {x : M}, SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x x
-but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] {x : M}, SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 x x
-Case conversion may be inaccurate. Consider using '#align same_ray.rfl SameRay.rflₓ'. -/
protected theorem rfl : SameRay R x x :=
refl _
#align same_ray.rfl SameRay.rfl
-/- warning: same_ray.symm -> SameRay.symm is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {x : M} {y : M}, (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x y) -> (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 y x)
-but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] {x : M} {y : M}, (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 x y) -> (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 y x)
-Case conversion may be inaccurate. Consider using '#align same_ray.symm SameRay.symmₓ'. -/
/-- `same_ray` is symmetric. -/
@[symm]
theorem symm (h : SameRay R x y) : SameRay R y x :=
(or_left_comm.1 h).imp_right <| Or.imp_right fun ⟨r₁, r₂, h₁, h₂, h⟩ => ⟨r₂, r₁, h₂, h₁, h.symm⟩
#align same_ray.symm SameRay.symm
-/- warning: same_ray.exists_pos -> SameRay.exists_pos is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align same_ray.exists_pos SameRay.exists_posₓ'. -/
/-- If `x` and `y` are nonzero vectors on the same ray, then there exist positive numbers `r₁ r₂`
such that `r₁ • x = r₂ • y`. -/
theorem exists_pos (h : SameRay R x y) (hx : x ≠ 0) (hy : y ≠ 0) :
@@ -144,22 +105,10 @@ theorem exists_pos (h : SameRay R x y) (hx : x ≠ 0) (hy : y ≠ 0) :
(h.resolve_left hx).resolve_left hy
#align same_ray.exists_pos SameRay.exists_pos
-/- warning: same_ray_comm -> SameRay.sameRay_comm is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {x : M} {y : M}, Iff (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x y) (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 y x)
-but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] {x : M} {y : M}, Iff (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 x y) (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 y x)
-Case conversion may be inaccurate. Consider using '#align same_ray_comm SameRay.sameRay_commₓ'. -/
theorem SameRay.sameRay_comm : SameRay R x y ↔ SameRay R y x :=
⟨SameRay.symm, SameRay.symm⟩
#align same_ray_comm SameRay.sameRay_comm
-/- warning: same_ray.trans -> SameRay.trans is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {x : M} {y : M} {z : M}, (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x y) -> (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 y z) -> ((Eq.{succ u2} M y (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))) -> (Or (Eq.{succ u2} M x (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))) (Eq.{succ u2} M z (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))))) -> (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x z)
-but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] {x : M} {y : M} {z : M}, (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 x y) -> (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 y z) -> ((Eq.{succ u1} M y (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2))))) -> (Or (Eq.{succ u1} M x (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2))))) (Eq.{succ u1} M z (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2))))))) -> (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 x z)
-Case conversion may be inaccurate. Consider using '#align same_ray.trans SameRay.transₓ'. -/
/-- `same_ray` is transitive unless the vector in the middle is zero and both other vectors are
nonzero. -/
theorem trans (hxy : SameRay R x y) (hyz : SameRay R y z) (hy : y = 0 → x = 0 ∨ z = 0) :
@@ -174,12 +123,6 @@ theorem trans (hxy : SameRay R x y) (hyz : SameRay R y z) (hy : y = 0 → x = 0
rw [mul_smul, mul_smul, h₁, ← h₂, smul_comm]
#align same_ray.trans SameRay.trans
-/- warning: same_ray_nonneg_smul_right -> SameRay.sameRay_nonneg_smul_right is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] (v : M) {r : R}, (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedCancelAddCommMonoid.toPartialOrder.{u1} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))))))) r) -> (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 v (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) r v))
-but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] (v : M) {r : R}, (LE.le.{u2} R (Preorder.toLE.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedSemiring.toPartialOrder.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))))) r) -> (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 v (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3))))) r v))
-Case conversion may be inaccurate. Consider using '#align same_ray_nonneg_smul_right SameRay.sameRay_nonneg_smul_rightₓ'. -/
/-- A vector is in the same ray as a nonnegative multiple of itself. -/
theorem SameRay.sameRay_nonneg_smul_right (v : M) {r : R} (h : 0 ≤ r) : SameRay R v (r • v) :=
Or.inr <|
@@ -187,86 +130,41 @@ theorem SameRay.sameRay_nonneg_smul_right (v : M) {r : R} (h : 0 ≤ r) : SameRa
⟨r, 1, h, by nontriviality R; exact zero_lt_one, (one_smul _ _).symm⟩
#align same_ray_nonneg_smul_right SameRay.sameRay_nonneg_smul_right
-/- warning: same_ray_pos_smul_right -> SameRay.sameRay_pos_smul_right is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] (v : M) {r : R}, (LT.lt.{u1} R (Preorder.toHasLt.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedCancelAddCommMonoid.toPartialOrder.{u1} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))))))) r) -> (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 v (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) r v))
-but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] (v : M) {r : R}, (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedSemiring.toPartialOrder.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))))) r) -> (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 v (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3))))) r v))
-Case conversion may be inaccurate. Consider using '#align same_ray_pos_smul_right SameRay.sameRay_pos_smul_rightₓ'. -/
/-- A vector is in the same ray as a positive multiple of itself. -/
theorem SameRay.sameRay_pos_smul_right (v : M) {r : R} (h : 0 < r) : SameRay R v (r • v) :=
SameRay.sameRay_nonneg_smul_right v h.le
#align same_ray_pos_smul_right SameRay.sameRay_pos_smul_right
-/- warning: same_ray.nonneg_smul_right -> SameRay.nonneg_smul_right is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {x : M} {y : M} {r : R}, (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x y) -> (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedCancelAddCommMonoid.toPartialOrder.{u1} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))))))) r) -> (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) r y))
-but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] {x : M} {y : M} {r : R}, (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 x y) -> (LE.le.{u2} R (Preorder.toLE.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedSemiring.toPartialOrder.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))))) r) -> (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 x (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3))))) r y))
-Case conversion may be inaccurate. Consider using '#align same_ray.nonneg_smul_right SameRay.nonneg_smul_rightₓ'. -/
/-- A vector is in the same ray as a nonnegative multiple of one it is in the same ray as. -/
theorem nonneg_smul_right {r : R} (h : SameRay R x y) (hr : 0 ≤ r) : SameRay R x (r • y) :=
h.trans (SameRay.sameRay_nonneg_smul_right y hr) fun hy => Or.inr <| by rw [hy, smul_zero]
#align same_ray.nonneg_smul_right SameRay.nonneg_smul_right
-/- warning: same_ray.pos_smul_right -> SameRay.pos_smul_right is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {x : M} {y : M} {r : R}, (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x y) -> (LT.lt.{u1} R (Preorder.toHasLt.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedCancelAddCommMonoid.toPartialOrder.{u1} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))))))) r) -> (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) r y))
-but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] {x : M} {y : M} {r : R}, (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 x y) -> (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedSemiring.toPartialOrder.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))))) r) -> (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 x (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3))))) r y))
-Case conversion may be inaccurate. Consider using '#align same_ray.pos_smul_right SameRay.pos_smul_rightₓ'. -/
/-- A vector is in the same ray as a positive multiple of one it is in the same ray as. -/
theorem pos_smul_right {r : R} (h : SameRay R x y) (hr : 0 < r) : SameRay R x (r • y) :=
h.nonneg_smul_right hr.le
#align same_ray.pos_smul_right SameRay.pos_smul_right
-/- warning: same_ray_nonneg_smul_left -> SameRay.sameRay_nonneg_smul_left is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] (v : M) {r : R}, (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedCancelAddCommMonoid.toPartialOrder.{u1} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))))))) r) -> (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) r v) v)
-but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] (v : M) {r : R}, (LE.le.{u2} R (Preorder.toLE.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedSemiring.toPartialOrder.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))))) r) -> (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3))))) r v) v)
-Case conversion may be inaccurate. Consider using '#align same_ray_nonneg_smul_left SameRay.sameRay_nonneg_smul_leftₓ'. -/
/-- A nonnegative multiple of a vector is in the same ray as that vector. -/
theorem SameRay.sameRay_nonneg_smul_left (v : M) {r : R} (h : 0 ≤ r) : SameRay R (r • v) v :=
(SameRay.sameRay_nonneg_smul_right v h).symm
#align same_ray_nonneg_smul_left SameRay.sameRay_nonneg_smul_left
-/- warning: same_ray_pos_smul_left -> SameRay.sameRay_pos_smul_left is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] (v : M) {r : R}, (LT.lt.{u1} R (Preorder.toHasLt.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedCancelAddCommMonoid.toPartialOrder.{u1} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))))))) r) -> (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) r v) v)
-but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] (v : M) {r : R}, (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedSemiring.toPartialOrder.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))))) r) -> (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3))))) r v) v)
-Case conversion may be inaccurate. Consider using '#align same_ray_pos_smul_left SameRay.sameRay_pos_smul_leftₓ'. -/
/-- A positive multiple of a vector is in the same ray as that vector. -/
theorem SameRay.sameRay_pos_smul_left (v : M) {r : R} (h : 0 < r) : SameRay R (r • v) v :=
SameRay.sameRay_nonneg_smul_left v h.le
#align same_ray_pos_smul_left SameRay.sameRay_pos_smul_left
-/- warning: same_ray.nonneg_smul_left -> SameRay.nonneg_smul_left is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {x : M} {y : M} {r : R}, (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x y) -> (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedCancelAddCommMonoid.toPartialOrder.{u1} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))))))) r) -> (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) r x) y)
-but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] {x : M} {y : M} {r : R}, (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 x y) -> (LE.le.{u2} R (Preorder.toLE.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedSemiring.toPartialOrder.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))))) r) -> (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3))))) r x) y)
-Case conversion may be inaccurate. Consider using '#align same_ray.nonneg_smul_left SameRay.nonneg_smul_leftₓ'. -/
/-- A nonnegative multiple of a vector is in the same ray as one it is in the same ray as. -/
theorem nonneg_smul_left {r : R} (h : SameRay R x y) (hr : 0 ≤ r) : SameRay R (r • x) y :=
(h.symm.nonneg_smul_right hr).symm
#align same_ray.nonneg_smul_left SameRay.nonneg_smul_left
-/- warning: same_ray.pos_smul_left -> SameRay.pos_smul_left is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {x : M} {y : M} {r : R}, (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x y) -> (LT.lt.{u1} R (Preorder.toHasLt.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedCancelAddCommMonoid.toPartialOrder.{u1} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))))))) r) -> (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) r x) y)
-but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] {x : M} {y : M} {r : R}, (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 x y) -> (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedSemiring.toPartialOrder.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))))) r) -> (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3))))) r x) y)
-Case conversion may be inaccurate. Consider using '#align same_ray.pos_smul_left SameRay.pos_smul_leftₓ'. -/
/-- A positive multiple of a vector is in the same ray as one it is in the same ray as. -/
theorem pos_smul_left {r : R} (h : SameRay R x y) (hr : 0 < r) : SameRay R (r • x) y :=
h.nonneg_smul_left hr.le
#align same_ray.pos_smul_left SameRay.pos_smul_left
-/- warning: same_ray.map -> SameRay.map is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align same_ray.map SameRay.mapₓ'. -/
/-- If two vectors are on the same ray then they remain so after applying a linear map. -/
theorem map (f : M →ₗ[R] N) (h : SameRay R x y) : SameRay R (f x) (f y) :=
(h.imp fun hx => by rw [hx, map_zero]) <|
@@ -274,9 +172,6 @@ theorem map (f : M →ₗ[R] N) (h : SameRay R x y) : SameRay R (f x) (f y) :=
⟨r₁, r₂, hr₁, hr₂, by rw [← f.map_smul, ← f.map_smul, h]⟩
#align same_ray.map SameRay.map
-/- warning: function.injective.same_ray_map_iff -> Function.Injective.sameRay_map_iff is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align function.injective.same_ray_map_iff Function.Injective.sameRay_map_iffₓ'. -/
/-- The images of two vectors under an injective linear map are on the same ray if and only if the
original vectors are on the same ray. -/
theorem Function.Injective.sameRay_map_iff {F : Type _} [LinearMapClass F R M N] {f : F}
@@ -284,9 +179,6 @@ theorem Function.Injective.sameRay_map_iff {F : Type _} [LinearMapClass F R M N]
simp only [SameRay, map_zero, ← hf.eq_iff, map_smul]
#align function.injective.same_ray_map_iff Function.Injective.sameRay_map_iff
-/- warning: same_ray_map_iff -> SameRay.sameRay_map_iff is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align same_ray_map_iff SameRay.sameRay_map_iffₓ'. -/
/-- The images of two vectors under a linear equivalence are on the same ray if and only if the
original vectors are on the same ray. -/
@[simp]
@@ -294,12 +186,6 @@ theorem SameRay.sameRay_map_iff (e : M ≃ₗ[R] N) : SameRay R (e x) (e y) ↔
Function.Injective.sameRay_map_iff (EquivLike.injective e)
#align same_ray_map_iff SameRay.sameRay_map_iff
-/- warning: same_ray.smul -> SameRay.smul is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {x : M} {y : M} {S : Type.{u3}} [_inst_7 : Monoid.{u3} S] [_inst_8 : DistribMulAction.{u3, u2} S M _inst_7 (AddCommMonoid.toAddMonoid.{u2} M _inst_2)] [_inst_9 : SMulCommClass.{u1, u3, u2} R S M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) (SMulZeroClass.toHasSmul.{u3, u2} S M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (DistribSMul.toSmulZeroClass.{u3, u2} S M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u3, u2} S M _inst_7 (AddCommMonoid.toAddMonoid.{u2} M _inst_2) _inst_8)))], (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x y) -> (forall (s : S), SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 (SMul.smul.{u3, u2} S M (SMulZeroClass.toHasSmul.{u3, u2} S M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (DistribSMul.toSmulZeroClass.{u3, u2} S M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u3, u2} S M _inst_7 (AddCommMonoid.toAddMonoid.{u2} M _inst_2) _inst_8))) s x) (SMul.smul.{u3, u2} S M (SMulZeroClass.toHasSmul.{u3, u2} S M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (DistribSMul.toSmulZeroClass.{u3, u2} S M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u3, u2} S M _inst_7 (AddCommMonoid.toAddMonoid.{u2} M _inst_2) _inst_8))) s y))
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {x : M} {y : M} {S : Type.{u3}} [_inst_7 : Monoid.{u3} S] [_inst_8 : DistribMulAction.{u3, u2} S M _inst_7 (AddCommMonoid.toAddMonoid.{u2} M _inst_2)] [_inst_9 : SMulCommClass.{u1, u3, u2} R S M (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CommSemiring.toCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R _inst_1))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) (SMulZeroClass.toSMul.{u3, u2} S M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u3, u2} S M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u3, u2} S M _inst_7 (AddCommMonoid.toAddMonoid.{u2} M _inst_2) _inst_8)))], (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x y) -> (forall (s : S), SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 (HSMul.hSMul.{u3, u2, u2} S M M (instHSMul.{u3, u2} S M (SMulZeroClass.toSMul.{u3, u2} S M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u3, u2} S M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u3, u2} S M _inst_7 (AddCommMonoid.toAddMonoid.{u2} M _inst_2) _inst_8)))) s x) (HSMul.hSMul.{u3, u2, u2} S M M (instHSMul.{u3, u2} S M (SMulZeroClass.toSMul.{u3, u2} S M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u3, u2} S M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u3, u2} S M _inst_7 (AddCommMonoid.toAddMonoid.{u2} M _inst_2) _inst_8)))) s y))
-Case conversion may be inaccurate. Consider using '#align same_ray.smul SameRay.smulₓ'. -/
/-- If two vectors are on the same ray then both scaled by the same action are also on the same
ray. -/
theorem smul {S : Type _} [Monoid S] [DistribMulAction S M] [SMulCommClass R S M]
@@ -307,12 +193,6 @@ theorem smul {S : Type _} [Monoid S] [DistribMulAction S M] [SMulCommClass R S M
h.map (s • (LinearMap.id : M →ₗ[R] M))
#align same_ray.smul SameRay.smul
-/- warning: same_ray.add_left -> SameRay.add_left is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {x : M} {y : M} {z : M}, (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x z) -> (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 y z) -> (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toHasAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))) x y) z)
-but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] {x : M} {y : M} {z : M}, (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 x z) -> (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 y z) -> (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} M M M (instHAdd.{u1} M (AddZeroClass.toAdd.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)))) x y) z)
-Case conversion may be inaccurate. Consider using '#align same_ray.add_left SameRay.add_leftₓ'. -/
/-- If `x` and `y` are on the same ray as `z`, then so is `x + y`. -/
theorem add_left (hx : SameRay R x z) (hy : SameRay R y z) : SameRay R (x + y) z :=
by
@@ -327,12 +207,6 @@ theorem add_left (hx : SameRay R x z) (hy : SameRay R y z) : SameRay R (x + y) z
rw [smul_comm]
#align same_ray.add_left SameRay.add_left
-/- warning: same_ray.add_right -> SameRay.add_right is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {x : M} {y : M} {z : M}, (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x y) -> (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x z) -> (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toHasAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))) y z))
-but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] {x : M} {y : M} {z : M}, (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 x y) -> (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 x z) -> (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 x (HAdd.hAdd.{u1, u1, u1} M M M (instHAdd.{u1} M (AddZeroClass.toAdd.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)))) y z))
-Case conversion may be inaccurate. Consider using '#align same_ray.add_right SameRay.add_rightₓ'. -/
/-- If `y` and `z` are on the same ray as `x`, then so is `y + z`. -/
theorem add_right (hy : SameRay R x y) (hz : SameRay R x z) : SameRay R x (y + z) :=
(hy.symm.add_left hz.symm).symm
@@ -349,12 +223,6 @@ def RayVector (R M : Type _) [Zero M] :=
#align ray_vector RayVector
-/
-/- warning: ray_vector.has_coe -> RayVector.coe is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {M : Type.{u2}} [_inst_7 : Zero.{u2} M], Coe.{succ u2, succ u2} (RayVector.{u1, u2} R M _inst_7) M
-but is expected to have type
- forall {R : Type.{u1}} {M : Type.{u2}} [_inst_7 : Zero.{u2} M], CoeOut.{succ u2, succ u2} (RayVector.{u1, u2} R M _inst_7) M
-Case conversion may be inaccurate. Consider using '#align ray_vector.has_coe RayVector.coeₓ'. -/
instance RayVector.coe {R M : Type _} [Zero M] : Coe (RayVector R M) M :=
coeSubtype
#align ray_vector.has_coe RayVector.coe
@@ -383,12 +251,6 @@ def Module.Ray :=
variable {R M}
-/- warning: equiv_iff_same_ray -> equiv_iff_sameRay is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {v₁ : RayVector.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))} {v₂ : RayVector.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))}, Iff (HasEquivₓ.Equiv.{succ u2} (RayVector.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))) (setoidHasEquiv.{succ u2} (RayVector.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))) (RayVector.setoid.{u1, u2} R _inst_1 M _inst_2 _inst_3)) v₁ v₂) (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (RayVector.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))) M (HasLiftT.mk.{succ u2, succ u2} (RayVector.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))) M (CoeTCₓ.coe.{succ u2, succ u2} (RayVector.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))) M (coeBase.{succ u2, succ u2} (RayVector.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))) M (RayVector.coe.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))) v₁) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (RayVector.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))) M (HasLiftT.mk.{succ u2, succ u2} (RayVector.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))) M (CoeTCₓ.coe.{succ u2, succ u2} (RayVector.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))) M (coeBase.{succ u2, succ u2} (RayVector.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))) M (RayVector.coe.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))) v₂))
-but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] {v₁ : RayVector.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2))} {v₂ : RayVector.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2))}, Iff (HasEquiv.Equiv.{succ u1, 0} (RayVector.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2))) (instHasEquiv.{succ u1} (RayVector.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2))) (RayVector.Setoid.{u2, u1} R _inst_1 M _inst_2 _inst_3)) v₁ v₂) (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 (Subtype.val.{succ u1} M (fun (v : M) => Ne.{succ u1} M v (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2))))) v₁) (Subtype.val.{succ u1} M (fun (v : M) => Ne.{succ u1} M v (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2))))) v₂))
-Case conversion may be inaccurate. Consider using '#align equiv_iff_same_ray equiv_iff_sameRayₓ'. -/
/-- Equivalence of nonzero vectors, in terms of same_ray. -/
theorem equiv_iff_sameRay {v₁ v₂ : RayVector R M} : v₁ ≈ v₂ ↔ SameRay R (v₁ : M) v₂ :=
Iff.rfl
@@ -396,23 +258,11 @@ theorem equiv_iff_sameRay {v₁ v₂ : RayVector R M} : v₁ ≈ v₂ ↔ SameRa
variable (R)
-/- warning: ray_of_ne_zero -> rayOfNeZero is a dubious translation:
-lean 3 declaration is
- forall (R : Type.{u1}) [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] (v : M), (Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))) -> (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3)
-but is expected to have type
- forall (R : Type.{u1}) [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] (v : M), (Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))) -> (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3)
-Case conversion may be inaccurate. Consider using '#align ray_of_ne_zero rayOfNeZeroₓ'. -/
/-- The ray given by a nonzero vector. -/
protected def rayOfNeZero (v : M) (h : v ≠ 0) : Module.Ray R M :=
⟦⟨v, h⟩⟧
#align ray_of_ne_zero rayOfNeZero
-/- warning: module.ray.ind -> Module.Ray.ind is a dubious translation:
-lean 3 declaration is
- forall (R : Type.{u1}) [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {C : (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) -> Prop}, (forall (v : M) (hv : Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))), C (rayOfNeZero.{u1, u2} R _inst_1 M _inst_2 _inst_3 v hv)) -> (forall (x : Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3), C x)
-but is expected to have type
- forall (R : Type.{u2}) [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] {C : (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) -> Prop}, (forall (v : M) (hv : Ne.{succ u1} M v (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2))))), C (rayOfNeZero.{u2, u1} R _inst_1 M _inst_2 _inst_3 v hv)) -> (forall (x : Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3), C x)
-Case conversion may be inaccurate. Consider using '#align module.ray.ind Module.Ray.indₓ'. -/
/-- An induction principle for `module.ray`, used as `induction x using module.ray.ind`. -/
theorem Module.Ray.ind {C : Module.Ray R M → Prop} (h : ∀ (v) (hv : v ≠ 0), C (rayOfNeZero R v hv))
(x : Module.Ray R M) : C x :=
@@ -424,12 +274,6 @@ variable {R}
instance [Nontrivial M] : Nonempty (Module.Ray R M) :=
Nonempty.map Quotient.mk' inferInstance
-/- warning: ray_eq_iff -> ray_eq_iff is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {v₁ : M} {v₂ : M} (hv₁ : Ne.{succ u2} M v₁ (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))) (hv₂ : Ne.{succ u2} M v₂ (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))), Iff (Eq.{succ u2} (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (rayOfNeZero.{u1, u2} R _inst_1 M _inst_2 _inst_3 v₁ hv₁) (rayOfNeZero.{u1, u2} R _inst_1 M _inst_2 _inst_3 v₂ hv₂)) (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 v₁ v₂)
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {v₁ : M} {v₂ : M} (hv₁ : Ne.{succ u2} M v₁ (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))) (hv₂ : Ne.{succ u2} M v₂ (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))), Iff (Eq.{succ u2} (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (rayOfNeZero.{u1, u2} R _inst_1 M _inst_2 _inst_3 v₁ hv₁) (rayOfNeZero.{u1, u2} R _inst_1 M _inst_2 _inst_3 v₂ hv₂)) (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 v₁ v₂)
-Case conversion may be inaccurate. Consider using '#align ray_eq_iff ray_eq_iffₓ'. -/
/-- The rays given by two nonzero vectors are equal if and only if those vectors
satisfy `same_ray`. -/
theorem ray_eq_iff {v₁ v₂ : M} (hv₁ : v₁ ≠ 0) (hv₂ : v₂ ≠ 0) :
@@ -437,12 +281,6 @@ theorem ray_eq_iff {v₁ v₂ : M} (hv₁ : v₁ ≠ 0) (hv₂ : v₂ ≠ 0) :
Quotient.eq'
#align ray_eq_iff ray_eq_iff
-/- warning: ray_pos_smul -> ray_pos_smul is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {v : M} (h : Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))) {r : R}, (LT.lt.{u1} R (Preorder.toHasLt.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedCancelAddCommMonoid.toPartialOrder.{u1} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))))))) r) -> (forall (hrv : Ne.{succ u2} M (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) r v) (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))), Eq.{succ u2} (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (rayOfNeZero.{u1, u2} R _inst_1 M _inst_2 _inst_3 (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) r v) hrv) (rayOfNeZero.{u1, u2} R _inst_1 M _inst_2 _inst_3 v h))
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {v : M} (h : Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))) {r : R}, (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (StrictOrderedSemiring.toPartialOrder.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CommSemiring.toCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R _inst_1))))) r) -> (forall (hrv : Ne.{succ u2} M (HSMul.hSMul.{u1, u2, u2} R M M (instHSMul.{u1, u2} R M (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CommSemiring.toCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R _inst_1))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3))))) r v) (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))), Eq.{succ u2} (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (rayOfNeZero.{u1, u2} R _inst_1 M _inst_2 _inst_3 (HSMul.hSMul.{u1, u2, u2} R M M (instHSMul.{u1, u2} R M (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CommSemiring.toCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R _inst_1))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3))))) r v) hrv) (rayOfNeZero.{u1, u2} R _inst_1 M _inst_2 _inst_3 v h))
-Case conversion may be inaccurate. Consider using '#align ray_pos_smul ray_pos_smulₓ'. -/
/-- The ray given by a positive multiple of a nonzero vector. -/
@[simp]
theorem ray_pos_smul {v : M} (h : v ≠ 0) {r : R} (hr : 0 < r) (hrv : r • v ≠ 0) :
@@ -450,12 +288,6 @@ theorem ray_pos_smul {v : M} (h : v ≠ 0) {r : R} (hr : 0 < r) (hrv : r • v
(ray_eq_iff _ _).2 <| SameRay.sameRay_pos_smul_left v hr
#align ray_pos_smul ray_pos_smul
-/- warning: ray_vector.map_linear_equiv -> RayVector.mapLinearEquiv is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {N : Type.{u3}} [_inst_4 : AddCommMonoid.{u3} N] [_inst_5 : Module.{u1, u3} R N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_4], (LinearEquiv.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RayVector.mapLinearEquiv._proof_1.{u1} R _inst_1) (RayVector.mapLinearEquiv._proof_2.{u1} R _inst_1) M N _inst_2 _inst_4 _inst_3 _inst_5) -> (Equiv.{succ u2, succ u3} (RayVector.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))) (RayVector.{u1, u3} R N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N (AddCommMonoid.toAddMonoid.{u3} N _inst_4)))))
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {N : Type.{u3}} [_inst_4 : AddCommMonoid.{u3} N] [_inst_5 : Module.{u1, u3} R N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_4], (LinearEquiv.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) -> (Equiv.{succ u2, succ u3} (RayVector.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (RayVector.{u1, u3} R N (AddMonoid.toZero.{u3} N (AddCommMonoid.toAddMonoid.{u3} N _inst_4))))
-Case conversion may be inaccurate. Consider using '#align ray_vector.map_linear_equiv RayVector.mapLinearEquivₓ'. -/
/-- An equivalence between modules implies an equivalence between ray vectors. -/
def RayVector.mapLinearEquiv (e : M ≃ₗ[R] N) : RayVector R M ≃ RayVector R N :=
Equiv.subtypeEquiv e.toEquiv fun _ => e.map_ne_zero_iff.symm
@@ -469,9 +301,6 @@ def Module.Ray.map (e : M ≃ₗ[R] N) : Module.Ray R M ≃ Module.Ray R N :=
#align module.ray.map Module.Ray.map
-/
-/- warning: module.ray.map_apply -> Module.Ray.map_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align module.ray.map_apply Module.Ray.map_applyₓ'. -/
@[simp]
theorem Module.Ray.map_apply (e : M ≃ₗ[R] N) (v : M) (hv : v ≠ 0) :
Module.Ray.map e (rayOfNeZero _ v hv) = rayOfNeZero _ (e v) (e.map_ne_zero_iff.2 hv) :=
@@ -485,12 +314,6 @@ theorem Module.Ray.map_refl : (Module.Ray.map <| LinearEquiv.refl R M) = Equiv.r
#align module.ray.map_refl Module.Ray.map_refl
-/
-/- warning: module.ray.map_symm -> Module.Ray.map_symm is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {N : Type.{u3}} [_inst_4 : AddCommMonoid.{u3} N] [_inst_5 : Module.{u1, u3} R N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_4] (e : LinearEquiv.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5), Eq.{max 1 (max (succ u3) (succ u2)) (succ u2) (succ u3)} (Equiv.{succ u3, succ u2} (Module.Ray.{u1, u3} R _inst_1 N _inst_4 _inst_5) (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3)) (Equiv.symm.{succ u2, succ u3} (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u1, u3} R _inst_1 N _inst_4 _inst_5) (Module.Ray.map.{u1, u2, u3} R _inst_1 M _inst_2 _inst_3 N _inst_4 _inst_5 e)) (Module.Ray.map.{u1, u3, u2} R _inst_1 N _inst_4 _inst_5 M _inst_2 _inst_3 (LinearEquiv.symm.{u1, u1, u2, u3} R R M N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) e))
-but is expected to have type
- forall {R : Type.{u3}} [_inst_1 : StrictOrderedCommSemiring.{u3} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2] {N : Type.{u1}} [_inst_4 : AddCommMonoid.{u1} N] [_inst_5 : Module.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4] (e : LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5), Eq.{max (succ u2) (succ u1)} (Equiv.{succ u1, succ u2} (Module.Ray.{u3, u1} R _inst_1 N _inst_4 _inst_5) (Module.Ray.{u3, u2} R _inst_1 M _inst_2 _inst_3)) (Equiv.symm.{succ u2, succ u1} (Module.Ray.{u3, u2} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u3, u1} R _inst_1 N _inst_4 _inst_5) (Module.Ray.map.{u3, u2, u1} R _inst_1 M _inst_2 _inst_3 N _inst_4 _inst_5 e)) (Module.Ray.map.{u3, u1, u2} R _inst_1 N _inst_4 _inst_5 M _inst_2 _inst_3 (LinearEquiv.symm.{u3, u3, u2, u1} R R M N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) e))
-Case conversion may be inaccurate. Consider using '#align module.ray.map_symm Module.Ray.map_symmₓ'. -/
@[simp]
theorem Module.Ray.map_symm (e : M ≃ₗ[R] N) : (Module.Ray.map e).symm = Module.Ray.map e.symm :=
rfl
@@ -518,9 +341,6 @@ instance : MulAction G (Module.Ray R M)
mul_smul a b := Quotient.ind fun m => congr_arg Quotient.mk' <| mul_smul a b _
one_smul := Quotient.ind fun m => congr_arg Quotient.mk' <| one_smul _ _
-/- warning: module.ray.linear_equiv_smul_eq_map -> Module.Ray.linearEquiv_smul_eq_map is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align module.ray.linear_equiv_smul_eq_map Module.Ray.linearEquiv_smul_eq_mapₓ'. -/
/-- The action via `linear_equiv.apply_distrib_mul_action` corresponds to `module.ray.map`. -/
@[simp]
theorem Module.Ray.linearEquiv_smul_eq_map (e : M ≃ₗ[R] M) (v : Module.Ray R M) :
@@ -528,9 +348,6 @@ theorem Module.Ray.linearEquiv_smul_eq_map (e : M ≃ₗ[R] M) (v : Module.Ray R
rfl
#align module.ray.linear_equiv_smul_eq_map Module.Ray.linearEquiv_smul_eq_map
-/- warning: smul_ray_of_ne_zero -> smul_rayOfNeZero is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align smul_ray_of_ne_zero smul_rayOfNeZeroₓ'. -/
@[simp]
theorem smul_rayOfNeZero (g : G) (v : M) (hv) :
g • rayOfNeZero R v hv = rayOfNeZero R (g • v) ((smul_ne_zero_iff_ne _).2 hv) :=
@@ -541,9 +358,6 @@ end Action
namespace Module.Ray
-/- warning: module.ray.units_smul_of_pos -> Module.Ray.units_smul_of_pos is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align module.ray.units_smul_of_pos Module.Ray.units_smul_of_posₓ'. -/
/-- Scaling by a positive unit is a no-op. -/
theorem units_smul_of_pos (u : Rˣ) (hu : 0 < (u : R)) (v : Module.Ray R M) : u • v = v :=
by
@@ -552,23 +366,11 @@ theorem units_smul_of_pos (u : Rˣ) (hu : 0 < (u : R)) (v : Module.Ray R M) : u
exact SameRay.sameRay_pos_smul_left _ hu
#align module.ray.units_smul_of_pos Module.Ray.units_smul_of_pos
-/- warning: module.ray.some_ray_vector -> Module.Ray.someRayVector is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2], (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) -> (RayVector.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2], (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) -> (RayVector.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))
-Case conversion may be inaccurate. Consider using '#align module.ray.some_ray_vector Module.Ray.someRayVectorₓ'. -/
/-- An arbitrary `ray_vector` giving a ray. -/
def someRayVector (x : Module.Ray R M) : RayVector R M :=
Quotient.out x
#align module.ray.some_ray_vector Module.Ray.someRayVector
-/- warning: module.ray.some_ray_vector_ray -> Module.Ray.someRayVector_ray is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] (x : Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3), Eq.{succ u2} (Quotient.{succ u2} (RayVector.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))) (RayVector.setoid.{u1, u2} R _inst_1 M _inst_2 _inst_3)) (Quotient.mk'.{succ u2} (RayVector.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))) (RayVector.setoid.{u1, u2} R _inst_1 M _inst_2 _inst_3) (Module.Ray.someRayVector.{u1, u2} R _inst_1 M _inst_2 _inst_3 x)) x
-but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] (x : Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3), Eq.{succ u1} (Quotient.{succ u1} (RayVector.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2))) (RayVector.Setoid.{u2, u1} R _inst_1 M _inst_2 _inst_3)) (Quotient.mk.{succ u1} (RayVector.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2))) (RayVector.Setoid.{u2, u1} R _inst_1 M _inst_2 _inst_3) (Module.Ray.someRayVector.{u2, u1} R _inst_1 M _inst_2 _inst_3 x)) x
-Case conversion may be inaccurate. Consider using '#align module.ray.some_ray_vector_ray Module.Ray.someRayVector_rayₓ'. -/
/-- The ray of `some_ray_vector`. -/
@[simp]
theorem someRayVector_ray (x : Module.Ray R M) : (⟦x.someRayVector⟧ : Module.Ray R M) = x :=
@@ -582,24 +384,12 @@ def someVector (x : Module.Ray R M) : M :=
#align module.ray.some_vector Module.Ray.someVector
-/
-/- warning: module.ray.some_vector_ne_zero -> Module.Ray.someVector_ne_zero is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] (x : Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3), Ne.{succ u2} M (Module.Ray.someVector.{u1, u2} R _inst_1 M _inst_2 _inst_3 x) (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))
-but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] (x : Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3), Ne.{succ u1} M (Module.Ray.someVector.{u2, u1} R _inst_1 M _inst_2 _inst_3 x) (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2))))
-Case conversion may be inaccurate. Consider using '#align module.ray.some_vector_ne_zero Module.Ray.someVector_ne_zeroₓ'. -/
/-- `some_vector` is nonzero. -/
@[simp]
theorem someVector_ne_zero (x : Module.Ray R M) : x.someVector ≠ 0 :=
x.someRayVector.property
#align module.ray.some_vector_ne_zero Module.Ray.someVector_ne_zero
-/- warning: module.ray.some_vector_ray -> Module.Ray.someVector_ray is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] (x : Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3), Eq.{succ u2} (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (rayOfNeZero.{u1, u2} R _inst_1 M _inst_2 _inst_3 (Module.Ray.someVector.{u1, u2} R _inst_1 M _inst_2 _inst_3 x) (Module.Ray.someVector_ne_zero.{u1, u2} R _inst_1 M _inst_2 _inst_3 x)) x
-but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] (x : Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3), Eq.{succ u1} (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (rayOfNeZero.{u2, u1} R _inst_1 M _inst_2 _inst_3 (Module.Ray.someVector.{u2, u1} R _inst_1 M _inst_2 _inst_3 x) (Module.Ray.someVector_ne_zero.{u1, u2} R _inst_1 M _inst_2 _inst_3 x)) x
-Case conversion may be inaccurate. Consider using '#align module.ray.some_vector_ray Module.Ray.someVector_rayₓ'. -/
/-- The ray of `some_vector`. -/
@[simp]
theorem someVector_ray (x : Module.Ray R M) : rayOfNeZero R _ x.someVector_ne_zero = x :=
@@ -616,49 +406,19 @@ variable {R : Type _} [StrictOrderedCommRing R]
variable {M N : Type _} [AddCommGroup M] [AddCommGroup N] [Module R M] [Module R N] {x y : M}
-/- warning: same_ray_neg_iff -> sameRay_neg_iff is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_4 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, Iff (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4 (Neg.neg.{u2} M (SubNegMonoid.toHasNeg.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))) x) (Neg.neg.{u2} M (SubNegMonoid.toHasNeg.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))) y)) (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4 x y)
-but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_4 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] {x : M} {y : M}, Iff (SameRay.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4 (Neg.neg.{u1} M (NegZeroClass.toNeg.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) x) (Neg.neg.{u1} M (NegZeroClass.toNeg.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) y)) (SameRay.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4 x y)
-Case conversion may be inaccurate. Consider using '#align same_ray_neg_iff sameRay_neg_iffₓ'. -/
/-- `same_ray.neg` as an `iff`. -/
@[simp]
theorem sameRay_neg_iff : SameRay R (-x) (-y) ↔ SameRay R x y := by
simp only [SameRay, neg_eq_zero, smul_neg, neg_inj]
#align same_ray_neg_iff sameRay_neg_iff
-/- warning: same_ray.of_neg -> SameRay.of_neg is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_4 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4 (Neg.neg.{u2} M (SubNegMonoid.toHasNeg.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))) x) (Neg.neg.{u2} M (SubNegMonoid.toHasNeg.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))) y)) -> (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4 x y)
-but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_4 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] {x : M} {y : M}, (SameRay.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4 (Neg.neg.{u1} M (NegZeroClass.toNeg.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) x) (Neg.neg.{u1} M (NegZeroClass.toNeg.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) y)) -> (SameRay.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4 x y)
-Case conversion may be inaccurate. Consider using '#align same_ray.of_neg SameRay.of_negₓ'. -/
-/- warning: same_ray.neg -> SameRay.neg is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_4 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4 x y) -> (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4 (Neg.neg.{u2} M (SubNegMonoid.toHasNeg.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))) x) (Neg.neg.{u2} M (SubNegMonoid.toHasNeg.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))) y))
-but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_4 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] {x : M} {y : M}, (SameRay.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4 x y) -> (SameRay.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4 (Neg.neg.{u1} M (NegZeroClass.toNeg.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) x) (Neg.neg.{u1} M (NegZeroClass.toNeg.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) y))
-Case conversion may be inaccurate. Consider using '#align same_ray.neg SameRay.negₓ'. -/
alias sameRay_neg_iff ↔ SameRay.of_neg SameRay.neg
#align same_ray.of_neg SameRay.of_neg
#align same_ray.neg SameRay.neg
-/- warning: same_ray_neg_swap -> sameRay_neg_swap is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_4 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, Iff (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4 (Neg.neg.{u2} M (SubNegMonoid.toHasNeg.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))) x) y) (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4 x (Neg.neg.{u2} M (SubNegMonoid.toHasNeg.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))) y))
-but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_4 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] {x : M} {y : M}, Iff (SameRay.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4 (Neg.neg.{u1} M (NegZeroClass.toNeg.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) x) y) (SameRay.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4 x (Neg.neg.{u1} M (NegZeroClass.toNeg.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) y))
-Case conversion may be inaccurate. Consider using '#align same_ray_neg_swap sameRay_neg_swapₓ'. -/
theorem sameRay_neg_swap : SameRay R (-x) y ↔ SameRay R x (-y) := by rw [← sameRay_neg_iff, neg_neg]
#align same_ray_neg_swap sameRay_neg_swap
-/- warning: eq_zero_of_same_ray_neg_smul_right -> eq_zero_of_sameRay_neg_smul_right is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_4 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} [_inst_6 : NoZeroSMulDivisors.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4))))] {r : R}, (LT.lt.{u1} R (Preorder.toHasLt.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))) r (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))))))))) -> (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4 x (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4)))) r x)) -> (Eq.{succ u2} M x (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))))))))
-but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_4 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] {x : M} [_inst_6 : NoZeroSMulDivisors.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4))))] {r : R}, (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (StrictOrderedCommRing.toStrictOrderedRing.{u2} R _inst_1)))) r (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))))))) -> (SameRay.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4 x (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4))))) r x)) -> (Eq.{succ u1} M x (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))))))
-Case conversion may be inaccurate. Consider using '#align eq_zero_of_same_ray_neg_smul_right eq_zero_of_sameRay_neg_smul_rightₓ'. -/
theorem eq_zero_of_sameRay_neg_smul_right [NoZeroSMulDivisors R M] {r : R} (hr : r < 0)
(h : SameRay R x (r • x)) : x = 0 :=
by
@@ -670,12 +430,6 @@ theorem eq_zero_of_sameRay_neg_smul_right [NoZeroSMulDivisors R M] {r : R} (hr :
exact (mul_neg_of_pos_of_neg hr₂ hr).trans hr₁
#align eq_zero_of_same_ray_neg_smul_right eq_zero_of_sameRay_neg_smul_right
-/- warning: eq_zero_of_same_ray_self_neg -> eq_zero_of_sameRay_self_neg is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_4 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} [_inst_6 : NoZeroSMulDivisors.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4))))], (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4 x (Neg.neg.{u2} M (SubNegMonoid.toHasNeg.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))) x)) -> (Eq.{succ u2} M x (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))))))))
-but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_4 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] {x : M} [_inst_6 : NoZeroSMulDivisors.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4))))], (SameRay.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4 x (Neg.neg.{u1} M (NegZeroClass.toNeg.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) x)) -> (Eq.{succ u1} M x (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))))))
-Case conversion may be inaccurate. Consider using '#align eq_zero_of_same_ray_self_neg eq_zero_of_sameRay_self_negₓ'. -/
/-- If a vector is in the same ray as its negation, that vector is zero. -/
theorem eq_zero_of_sameRay_self_neg [NoZeroSMulDivisors R M] (h : SameRay R x (-x)) : x = 0 :=
by
@@ -690,12 +444,6 @@ namespace RayVector
instance {R : Type _} : Neg (RayVector R M) :=
⟨fun v => ⟨-v, neg_ne_zero.2 v.Prop⟩⟩
-/- warning: ray_vector.coe_neg -> RayVector.coe_neg is a dubious translation:
-lean 3 declaration is
- forall {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] {R : Type.{u2}} (v : RayVector.{u2, u1} R M (AddZeroClass.toHasZero.{u1} M (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_2)))))), Eq.{succ u1} M ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (RayVector.{u2, u1} R M (AddZeroClass.toHasZero.{u1} M (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_2)))))) M (HasLiftT.mk.{succ u1, succ u1} (RayVector.{u2, u1} R M (AddZeroClass.toHasZero.{u1} M (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_2)))))) M (CoeTCₓ.coe.{succ u1, succ u1} (RayVector.{u2, u1} R M (AddZeroClass.toHasZero.{u1} M (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_2)))))) M (coeBase.{succ u1, succ u1} (RayVector.{u2, u1} R M (AddZeroClass.toHasZero.{u1} M (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_2)))))) M (RayVector.coe.{u2, u1} R M (AddZeroClass.toHasZero.{u1} M (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_2))))))))) (Neg.neg.{u1} (RayVector.{u2, u1} R M (AddZeroClass.toHasZero.{u1} M (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_2)))))) (RayVector.hasNeg.{u1, u2} M _inst_2 R) v)) (Neg.neg.{u1} M (SubNegMonoid.toHasNeg.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_2))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (RayVector.{u2, u1} R M (AddZeroClass.toHasZero.{u1} M (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_2)))))) M (HasLiftT.mk.{succ u1, succ u1} (RayVector.{u2, u1} R M (AddZeroClass.toHasZero.{u1} M (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_2)))))) M (CoeTCₓ.coe.{succ u1, succ u1} (RayVector.{u2, u1} R M (AddZeroClass.toHasZero.{u1} M (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_2)))))) M (coeBase.{succ u1, succ u1} (RayVector.{u2, u1} R M (AddZeroClass.toHasZero.{u1} M (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_2)))))) M (RayVector.coe.{u2, u1} R M (AddZeroClass.toHasZero.{u1} M (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_2))))))))) v))
-but is expected to have type
- forall {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] {R : Type.{u2}} (v : RayVector.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2)))))), Eq.{succ u1} M (Subtype.val.{succ u1} M (fun (v : M) => Ne.{succ u1} M v (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2)))))))) (Neg.neg.{u1} (RayVector.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2)))))) (RayVector.instNegRayVectorToZeroToNegZeroClassToSubNegZeroMonoidToSubtractionMonoidToDivisionAddCommMonoid.{u1, u2} M _inst_2 R) v)) (Neg.neg.{u1} M (NegZeroClass.toNeg.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Subtype.val.{succ u1} M (fun (v : M) => Ne.{succ u1} M v (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2)))))))) v))
-Case conversion may be inaccurate. Consider using '#align ray_vector.coe_neg RayVector.coe_negₓ'. -/
/-- Negating a nonzero vector commutes with coercion to the underlying module. -/
@[simp, norm_cast]
theorem coe_neg {R : Type _} (v : RayVector R M) : ↑(-v) = -(v : M) :=
@@ -708,12 +456,6 @@ instance {R : Type _} : InvolutiveNeg (RayVector R M)
neg := Neg.neg
neg_neg v := by rw [Subtype.ext_iff, coe_neg, coe_neg, neg_neg]
-/- warning: ray_vector.equiv_neg_iff -> RayVector.equiv_neg_iff is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_4 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {v₁ : RayVector.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))))} {v₂ : RayVector.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))))}, Iff (HasEquivₓ.Equiv.{succ u2} (RayVector.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))))) (setoidHasEquiv.{succ u2} (RayVector.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))))) (RayVector.setoid.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4)) (Neg.neg.{u2} (RayVector.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))))) (RayVector.hasNeg.{u2, u1} M _inst_2 R) v₁) (Neg.neg.{u2} (RayVector.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))))) (RayVector.hasNeg.{u2, u1} M _inst_2 R) v₂)) (HasEquivₓ.Equiv.{succ u2} (RayVector.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))))) (setoidHasEquiv.{succ u2} (RayVector.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))))) (RayVector.setoid.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4)) v₁ v₂)
-but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_4 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] {v₁ : RayVector.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2)))))} {v₂ : RayVector.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2)))))}, Iff (HasEquiv.Equiv.{succ u1, 0} (RayVector.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2)))))) (instHasEquiv.{succ u1} (RayVector.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2)))))) (RayVector.Setoid.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4)) (Neg.neg.{u1} (RayVector.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2)))))) (RayVector.instNegRayVectorToZeroToNegZeroClassToSubNegZeroMonoidToSubtractionMonoidToDivisionAddCommMonoid.{u1, u2} M _inst_2 R) v₁) (Neg.neg.{u1} (RayVector.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2)))))) (RayVector.instNegRayVectorToZeroToNegZeroClassToSubNegZeroMonoidToSubtractionMonoidToDivisionAddCommMonoid.{u1, u2} M _inst_2 R) v₂)) (HasEquiv.Equiv.{succ u1, 0} (RayVector.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2)))))) (instHasEquiv.{succ u1} (RayVector.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2)))))) (RayVector.Setoid.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4)) v₁ v₂)
-Case conversion may be inaccurate. Consider using '#align ray_vector.equiv_neg_iff RayVector.equiv_neg_iffₓ'. -/
/-- If two nonzero vectors are equivalent, so are their negations. -/
@[simp]
theorem equiv_neg_iff {v₁ v₂ : RayVector R M} : -v₁ ≈ -v₂ ↔ v₁ ≈ v₂ :=
@@ -728,12 +470,6 @@ variable (R)
instance : Neg (Module.Ray R M) :=
⟨Quotient.map (fun v => -v) fun v₁ v₂ => RayVector.equiv_neg_iff.2⟩
-/- warning: neg_ray_of_ne_zero -> neg_rayOfNeZero is a dubious translation:
-lean 3 declaration is
- forall (R : Type.{u1}) [_inst_1 : StrictOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_4 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] (v : M) (h : Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))), Eq.{succ u2} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Neg.neg.{u2} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Module.Ray.hasNeg.{u1, u2} R _inst_1 M _inst_2 _inst_4) (rayOfNeZero.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4 v h)) (rayOfNeZero.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4 (Neg.neg.{u2} M (SubNegMonoid.toHasNeg.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))) v) (Iff.mpr (Ne.{succ u2} M (Neg.neg.{u2} M (SubNegMonoid.toHasNeg.{u2} M (SubtractionMonoid.toSubNegMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))) v) (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (SubtractionMonoid.toSubNegMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))))))))) (Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (SubtractionMonoid.toSubNegMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))))))))) (neg_ne_zero.{u2} M (AddGroup.toSubtractionMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) v) h))
-but is expected to have type
- forall (R : Type.{u1}) [_inst_1 : StrictOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_4 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] (v : M) (h : Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2)))))))), Eq.{succ u2} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Neg.neg.{u2} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (instNegRayToStrictOrderedCommSemiringToAddCommMonoid.{u1, u2} R _inst_1 M _inst_2 _inst_4) (rayOfNeZero.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4 v h)) (rayOfNeZero.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4 (Neg.neg.{u2} M (NegZeroClass.toNeg.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) v) (Iff.mpr (Ne.{succ u2} M (Neg.neg.{u2} M (NegZeroClass.toNeg.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) v) (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2)))))))) (Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2)))))))) (neg_ne_zero.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2)) v) h))
-Case conversion may be inaccurate. Consider using '#align neg_ray_of_ne_zero neg_rayOfNeZeroₓ'. -/
/-- The ray given by the negation of a nonzero vector. -/
@[simp]
theorem neg_rayOfNeZero (v : M) (h : v ≠ 0) :
@@ -753,12 +489,6 @@ instance : InvolutiveNeg (Module.Ray R M)
variable {R M}
-/- warning: module.ray.ne_neg_self -> Module.Ray.ne_neg_self is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_4 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_6 : NoZeroSMulDivisors.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4))))] (x : Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4), Ne.{succ u2} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) x (Neg.neg.{u2} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Module.Ray.hasNeg.{u1, u2} R _inst_1 M _inst_2 _inst_4) x)
-but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_4 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] [_inst_6 : NoZeroSMulDivisors.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4))))] (x : Module.Ray.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4), Ne.{succ u1} (Module.Ray.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4) x (Neg.neg.{u1} (Module.Ray.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4) (instNegRayToStrictOrderedCommSemiringToAddCommMonoid.{u2, u1} R _inst_1 M _inst_2 _inst_4) x)
-Case conversion may be inaccurate. Consider using '#align module.ray.ne_neg_self Module.Ray.ne_neg_selfₓ'. -/
/-- A ray does not equal its own negation. -/
theorem ne_neg_self [NoZeroSMulDivisors R M] (x : Module.Ray R M) : x ≠ -x :=
by
@@ -767,18 +497,12 @@ theorem ne_neg_self [NoZeroSMulDivisors R M] (x : Module.Ray R M) : x ≠ -x :=
exact mt eq_zero_of_sameRay_self_neg hx
#align module.ray.ne_neg_self Module.Ray.ne_neg_self
-/- warning: module.ray.neg_units_smul -> Module.Ray.neg_units_smul is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align module.ray.neg_units_smul Module.Ray.neg_units_smulₓ'. -/
theorem neg_units_smul (u : Rˣ) (v : Module.Ray R M) : -u • v = -(u • v) :=
by
induction v using Module.Ray.ind
simp only [smul_rayOfNeZero, Units.smul_def, Units.val_neg, neg_smul, neg_rayOfNeZero]
#align module.ray.neg_units_smul Module.Ray.neg_units_smul
-/- warning: module.ray.units_smul_of_neg -> Module.Ray.units_smul_of_neg is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align module.ray.units_smul_of_neg Module.Ray.units_smul_of_negₓ'. -/
/-- Scaling by a negative unit is negation. -/
theorem units_smul_of_neg (u : Rˣ) (hu : (u : R) < 0) (v : Module.Ray R M) : u • v = -v :=
by
@@ -786,9 +510,6 @@ theorem units_smul_of_neg (u : Rˣ) (hu : (u : R) < 0) (v : Module.Ray R M) : u
rwa [Units.val_neg, Right.neg_pos_iff]
#align module.ray.units_smul_of_neg Module.Ray.units_smul_of_neg
-/- warning: module.ray.map_neg -> Module.Ray.map_neg is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align module.ray.map_neg Module.Ray.map_negₓ'. -/
@[simp]
protected theorem map_neg (f : M ≃ₗ[R] N) (v : Module.Ray R M) : map f (-v) = -map f v :=
by
@@ -806,9 +527,6 @@ variable {R : Type _} [LinearOrderedCommRing R]
variable {M : Type _} [AddCommGroup M] [Module R M]
-/- warning: same_ray_of_mem_orbit -> sameRay_of_mem_orbit is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align same_ray_of_mem_orbit sameRay_of_mem_orbitₓ'. -/
/-- `same_ray` follows from membership of `mul_action.orbit` for the `units.pos_subgroup`. -/
theorem sameRay_of_mem_orbit {v₁ v₂ : M} (h : v₁ ∈ MulAction.orbit (Units.posSubgroup R) v₂) :
SameRay R v₁ v₂ :=
@@ -817,9 +535,6 @@ theorem sameRay_of_mem_orbit {v₁ v₂ : M} (h : v₁ ∈ MulAction.orbit (Unit
exact SameRay.sameRay_pos_smul_left _ hr
#align same_ray_of_mem_orbit sameRay_of_mem_orbit
-/- warning: units_inv_smul -> units_inv_smul is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align units_inv_smul units_inv_smulₓ'. -/
/-- Scaling by an inverse unit is the same as scaling by itself. -/
@[simp]
theorem units_inv_smul (u : Rˣ) (v : Module.Ray R M) : u⁻¹ • v = u • v :=
@@ -834,18 +549,12 @@ section
variable [NoZeroSMulDivisors R M]
-/- warning: same_ray_smul_right_iff -> sameRay_smul_right_iff is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align same_ray_smul_right_iff sameRay_smul_right_iffₓ'. -/
@[simp]
theorem sameRay_smul_right_iff {v : M} {r : R} : SameRay R v (r • v) ↔ 0 ≤ r ∨ v = 0 :=
⟨fun hrv => or_iff_not_imp_left.2 fun hr => eq_zero_of_sameRay_neg_smul_right (not_le.1 hr) hrv,
or_imp.2 ⟨SameRay.sameRay_nonneg_smul_right v, fun h => h.symm ▸ SameRay.zero_left _⟩⟩
#align same_ray_smul_right_iff sameRay_smul_right_iff
-/- warning: same_ray_smul_right_iff_of_ne -> sameRay_smul_right_iff_of_ne is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align same_ray_smul_right_iff_of_ne sameRay_smul_right_iff_of_neₓ'. -/
/-- A nonzero vector is in the same ray as a multiple of itself if and only if that multiple
is positive. -/
theorem sameRay_smul_right_iff_of_ne {v : M} (hv : v ≠ 0) {r : R} (hr : r ≠ 0) :
@@ -853,17 +562,11 @@ theorem sameRay_smul_right_iff_of_ne {v : M} (hv : v ≠ 0) {r : R} (hr : r ≠
simp only [sameRay_smul_right_iff, hv, or_false_iff, hr.symm.le_iff_lt]
#align same_ray_smul_right_iff_of_ne sameRay_smul_right_iff_of_ne
-/- warning: same_ray_smul_left_iff -> sameRay_smul_left_iff is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align same_ray_smul_left_iff sameRay_smul_left_iffₓ'. -/
@[simp]
theorem sameRay_smul_left_iff {v : M} {r : R} : SameRay R (r • v) v ↔ 0 ≤ r ∨ v = 0 :=
SameRay.sameRay_comm.trans sameRay_smul_right_iff
#align same_ray_smul_left_iff sameRay_smul_left_iff
-/- warning: same_ray_smul_left_iff_of_ne -> sameRay_smul_left_iff_of_ne is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align same_ray_smul_left_iff_of_ne sameRay_smul_left_iff_of_neₓ'. -/
/-- A multiple of a nonzero vector is in the same ray as that vector if and only if that multiple
is positive. -/
theorem sameRay_smul_left_iff_of_ne {v : M} (hv : v ≠ 0) {r : R} (hr : r ≠ 0) :
@@ -871,41 +574,26 @@ theorem sameRay_smul_left_iff_of_ne {v : M} (hv : v ≠ 0) {r : R} (hr : r ≠ 0
SameRay.sameRay_comm.trans (sameRay_smul_right_iff_of_ne hv hr)
#align same_ray_smul_left_iff_of_ne sameRay_smul_left_iff_of_ne
-/- warning: same_ray_neg_smul_right_iff -> sameRay_neg_smul_right_iff is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align same_ray_neg_smul_right_iff sameRay_neg_smul_right_iffₓ'. -/
@[simp]
theorem sameRay_neg_smul_right_iff {v : M} {r : R} : SameRay R (-v) (r • v) ↔ r ≤ 0 ∨ v = 0 := by
rw [← sameRay_neg_iff, neg_neg, ← neg_smul, sameRay_smul_right_iff, neg_nonneg]
#align same_ray_neg_smul_right_iff sameRay_neg_smul_right_iff
-/- warning: same_ray_neg_smul_right_iff_of_ne -> sameRay_neg_smul_right_iff_of_ne is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align same_ray_neg_smul_right_iff_of_ne sameRay_neg_smul_right_iff_of_neₓ'. -/
theorem sameRay_neg_smul_right_iff_of_ne {v : M} {r : R} (hv : v ≠ 0) (hr : r ≠ 0) :
SameRay R (-v) (r • v) ↔ r < 0 := by
simp only [sameRay_neg_smul_right_iff, hv, or_false_iff, hr.le_iff_lt]
#align same_ray_neg_smul_right_iff_of_ne sameRay_neg_smul_right_iff_of_ne
-/- warning: same_ray_neg_smul_left_iff -> sameRay_neg_smul_left_iff is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align same_ray_neg_smul_left_iff sameRay_neg_smul_left_iffₓ'. -/
@[simp]
theorem sameRay_neg_smul_left_iff {v : M} {r : R} : SameRay R (r • v) (-v) ↔ r ≤ 0 ∨ v = 0 :=
SameRay.sameRay_comm.trans sameRay_neg_smul_right_iff
#align same_ray_neg_smul_left_iff sameRay_neg_smul_left_iff
-/- warning: same_ray_neg_smul_left_iff_of_ne -> sameRay_neg_smul_left_iff_of_ne is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align same_ray_neg_smul_left_iff_of_ne sameRay_neg_smul_left_iff_of_neₓ'. -/
theorem sameRay_neg_smul_left_iff_of_ne {v : M} {r : R} (hv : v ≠ 0) (hr : r ≠ 0) :
SameRay R (r • v) (-v) ↔ r < 0 :=
SameRay.sameRay_comm.trans <| sameRay_neg_smul_right_iff_of_ne hv hr
#align same_ray_neg_smul_left_iff_of_ne sameRay_neg_smul_left_iff_of_ne
-/- warning: units_smul_eq_self_iff -> units_smul_eq_self_iff is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align units_smul_eq_self_iff units_smul_eq_self_iffₓ'. -/
@[simp]
theorem units_smul_eq_self_iff {u : Rˣ} {v : Module.Ray R M} : u • v = v ↔ (0 : R) < u :=
by
@@ -913,21 +601,12 @@ theorem units_smul_eq_self_iff {u : Rˣ} {v : Module.Ray R M} : u • v = v ↔
simp only [smul_rayOfNeZero, ray_eq_iff, Units.smul_def, sameRay_smul_left_iff_of_ne hv u.ne_zero]
#align units_smul_eq_self_iff units_smul_eq_self_iff
-/- warning: units_smul_eq_neg_iff -> units_smul_eq_neg_iff is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align units_smul_eq_neg_iff units_smul_eq_neg_iffₓ'. -/
@[simp]
theorem units_smul_eq_neg_iff {u : Rˣ} {v : Module.Ray R M} : u • v = -v ↔ ↑u < (0 : R) := by
rw [← neg_inj, neg_neg, ← Module.Ray.neg_units_smul, units_smul_eq_self_iff, Units.val_neg,
neg_pos]
#align units_smul_eq_neg_iff units_smul_eq_neg_iff
-/- warning: same_ray_or_same_ray_neg_iff_not_linear_independent -> sameRay_or_sameRay_neg_iff_not_linearIndependent is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))] {x : M} {y : M}, Iff (Or (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x y) (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x (Neg.neg.{u2} M (SubNegMonoid.toHasNeg.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))) y))) (Not (LinearIndependent.{0, u1, u2} (Fin (Nat.succ (Nat.succ (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))))) R M (Matrix.vecCons.{u2} M (Nat.succ (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) x (Matrix.vecCons.{u2} M (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) y (Matrix.vecEmpty.{u2} M))) (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))
-but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : LinearOrderedCommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))] {x : M} {y : M}, Iff (Or (SameRay.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 x y) (SameRay.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 x (Neg.neg.{u1} M (NegZeroClass.toNeg.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) y))) (Not (LinearIndependent.{0, u2, u1} (Fin (Nat.succ (Nat.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))) R M (Matrix.vecCons.{u1} M (Nat.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) x (Matrix.vecCons.{u1} M (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) y (Matrix.vecEmpty.{u1} M))) (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))
-Case conversion may be inaccurate. Consider using '#align same_ray_or_same_ray_neg_iff_not_linear_independent sameRay_or_sameRay_neg_iff_not_linearIndependentₓ'. -/
/-- Two vectors are in the same ray, or the first is in the same ray as the negation of the
second, if and only if they are not linearly independent. -/
theorem sameRay_or_sameRay_neg_iff_not_linearIndependent {x y : M} :
@@ -965,12 +644,6 @@ theorem sameRay_or_sameRay_neg_iff_not_linearIndependent {x y : M} :
simp [hm]
#align same_ray_or_same_ray_neg_iff_not_linear_independent sameRay_or_sameRay_neg_iff_not_linearIndependent
-/- warning: same_ray_or_ne_zero_and_same_ray_neg_iff_not_linear_independent -> sameRay_or_ne_zero_and_sameRay_neg_iff_not_linearIndependent is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))] {x : M} {y : M}, Iff (Or (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x y) (And (Ne.{succ u2} M x (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) (And (Ne.{succ u2} M y (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x (Neg.neg.{u2} M (SubNegMonoid.toHasNeg.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))) y))))) (Not (LinearIndependent.{0, u1, u2} (Fin (Nat.succ (Nat.succ (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))))) R M (Matrix.vecCons.{u2} M (Nat.succ (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) x (Matrix.vecCons.{u2} M (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) y (Matrix.vecEmpty.{u2} M))) (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))
-but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : LinearOrderedCommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))] {x : M} {y : M}, Iff (Or (SameRay.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 x y) (And (Ne.{succ u1} M x (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2)))))))) (And (Ne.{succ u1} M y (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2)))))))) (SameRay.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 x (Neg.neg.{u1} M (NegZeroClass.toNeg.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) y))))) (Not (LinearIndependent.{0, u2, u1} (Fin (Nat.succ (Nat.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))) R M (Matrix.vecCons.{u1} M (Nat.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) x (Matrix.vecCons.{u1} M (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) y (Matrix.vecEmpty.{u1} M))) (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))
-Case conversion may be inaccurate. Consider using '#align same_ray_or_ne_zero_and_same_ray_neg_iff_not_linear_independent sameRay_or_ne_zero_and_sameRay_neg_iff_not_linearIndependentₓ'. -/
/-- Two vectors are in the same ray, or they are nonzero and the first is in the same ray as the
negation of the second, if and only if they are not linearly independent. -/
theorem sameRay_or_ne_zero_and_sameRay_neg_iff_not_linearIndependent {x y : M} :
@@ -991,32 +664,17 @@ variable {R : Type _} [LinearOrderedField R]
variable {M : Type _} [AddCommGroup M] [Module R M] {x y v₁ v₂ : M}
-/- warning: same_ray.exists_pos_left -> SameRay.exists_pos_left is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align same_ray.exists_pos_left SameRay.exists_pos_leftₓ'. -/
theorem exists_pos_left (h : SameRay R x y) (hx : x ≠ 0) (hy : y ≠ 0) :
∃ r : R, 0 < r ∧ r • x = y :=
let ⟨r₁, r₂, hr₁, hr₂, h⟩ := h.exists_pos hx hy
⟨r₂⁻¹ * r₁, mul_pos (inv_pos.2 hr₂) hr₁, by rw [mul_smul, h, inv_smul_smul₀ hr₂.ne']⟩
#align same_ray.exists_pos_left SameRay.exists_pos_left
-/- warning: same_ray.exists_pos_right -> SameRay.exists_pos_right is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x y) -> (Ne.{succ u2} M x (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (Ne.{succ u2} M y (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (Exists.{succ u1} R (fun (r : R) => And (LT.lt.{u1} R (Preorder.toHasLt.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) r) (Eq.{succ u2} M x (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r y))))
-but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : LinearOrderedField.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] {x : M} {y : M}, (SameRay.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 x y) -> (Ne.{succ u1} M x (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2)))))))) -> (Ne.{succ u1} M y (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2)))))))) -> (Exists.{succ u2} R (fun (r : R) => And (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R (LinearOrderedField.toLinearOrderedCommRing.{u2} R _inst_1)))))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))))) r) (Eq.{succ u1} M x (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))) r y))))
-Case conversion may be inaccurate. Consider using '#align same_ray.exists_pos_right SameRay.exists_pos_rightₓ'. -/
theorem exists_pos_right (h : SameRay R x y) (hx : x ≠ 0) (hy : y ≠ 0) :
∃ r : R, 0 < r ∧ x = r • y :=
(h.symm.exists_pos_left hy hx).imp fun _ => And.imp_right Eq.symm
#align same_ray.exists_pos_right SameRay.exists_pos_right
-/- warning: same_ray.exists_nonneg_left -> SameRay.exists_nonneg_left is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x y) -> (Ne.{succ u2} M x (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (Exists.{succ u1} R (fun (r : R) => And (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) r) (Eq.{succ u2} M (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r x) y)))
-but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : LinearOrderedField.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] {x : M} {y : M}, (SameRay.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 x y) -> (Ne.{succ u1} M x (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2)))))))) -> (Exists.{succ u2} R (fun (r : R) => And (LE.le.{u2} R (Preorder.toLE.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R (LinearOrderedField.toLinearOrderedCommRing.{u2} R _inst_1)))))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))))) r) (Eq.{succ u1} M (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))) r x) y)))
-Case conversion may be inaccurate. Consider using '#align same_ray.exists_nonneg_left SameRay.exists_nonneg_leftₓ'. -/
/-- If a vector `v₂` is on the same ray as a nonzero vector `v₁`, then it is equal to `c • v₁` for
some nonnegative `c`. -/
theorem exists_nonneg_left (h : SameRay R x y) (hx : x ≠ 0) : ∃ r : R, 0 ≤ r ∧ r • x = y :=
@@ -1026,21 +684,12 @@ theorem exists_nonneg_left (h : SameRay R x y) (hx : x ≠ 0) : ∃ r : R, 0 ≤
· exact (h.exists_pos_left hx hy).imp fun _ => And.imp_left le_of_lt
#align same_ray.exists_nonneg_left SameRay.exists_nonneg_left
-/- warning: same_ray.exists_nonneg_right -> SameRay.exists_nonneg_right is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x y) -> (Ne.{succ u2} M y (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (Exists.{succ u1} R (fun (r : R) => And (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) r) (Eq.{succ u2} M x (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r y))))
-but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : LinearOrderedField.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] {x : M} {y : M}, (SameRay.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 x y) -> (Ne.{succ u1} M y (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2)))))))) -> (Exists.{succ u2} R (fun (r : R) => And (LE.le.{u2} R (Preorder.toLE.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R (LinearOrderedField.toLinearOrderedCommRing.{u2} R _inst_1)))))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))))) r) (Eq.{succ u1} M x (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))) r y))))
-Case conversion may be inaccurate. Consider using '#align same_ray.exists_nonneg_right SameRay.exists_nonneg_rightₓ'. -/
/-- If a vector `v₁` is on the same ray as a nonzero vector `v₂`, then it is equal to `c • v₂` for
some nonnegative `c`. -/
theorem exists_nonneg_right (h : SameRay R x y) (hy : y ≠ 0) : ∃ r : R, 0 ≤ r ∧ x = r • y :=
(h.symm.exists_nonneg_left hy).imp fun _ => And.imp_right Eq.symm
#align same_ray.exists_nonneg_right SameRay.exists_nonneg_right
-/- warning: same_ray.exists_eq_smul_add -> SameRay.exists_eq_smul_add is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align same_ray.exists_eq_smul_add SameRay.exists_eq_smul_addₓ'. -/
/-- If vectors `v₁` and `v₂` are on the same ray, then for some nonnegative `a b`, `a + b = 1`, we
have `v₁ = a • (v₁ + v₂)` and `v₂ = b • (v₁ + v₂)`. -/
theorem exists_eq_smul_add (h : SameRay R v₁ v₂) :
@@ -1057,9 +706,6 @@ theorem exists_eq_smul_add (h : SameRay R v₁ v₂) :
· rw [div_eq_inv_mul, mul_smul, smul_add, H, ← add_smul, add_comm r₂, inv_smul_smul₀ h₁₂.ne']
#align same_ray.exists_eq_smul_add SameRay.exists_eq_smul_add
-/- warning: same_ray.exists_eq_smul -> SameRay.exists_eq_smul is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align same_ray.exists_eq_smul SameRay.exists_eq_smulₓ'. -/
/-- If vectors `v₁` and `v₂` are on the same ray, then they are nonnegative multiples of the same
vector. Actually, this vector can be assumed to be `v₁ + v₂`, see `same_ray.exists_eq_smul_add`. -/
theorem exists_eq_smul (h : SameRay R v₁ v₂) :
@@ -1075,9 +721,6 @@ variable {R : Type _} [LinearOrderedField R]
variable {M : Type _} [AddCommGroup M] [Module R M] {x y : M}
-/- warning: exists_pos_left_iff_same_ray -> exists_pos_left_iff_sameRay is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align exists_pos_left_iff_same_ray exists_pos_left_iff_sameRayₓ'. -/
theorem exists_pos_left_iff_sameRay (hx : x ≠ 0) (hy : y ≠ 0) :
(∃ r : R, 0 < r ∧ r • x = y) ↔ SameRay R x y :=
by
@@ -1086,9 +729,6 @@ theorem exists_pos_left_iff_sameRay (hx : x ≠ 0) (hy : y ≠ 0) :
exact SameRay.sameRay_pos_smul_right x hr
#align exists_pos_left_iff_same_ray exists_pos_left_iff_sameRay
-/- warning: exists_pos_left_iff_same_ray_and_ne_zero -> exists_pos_left_iff_sameRay_and_ne_zero is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align exists_pos_left_iff_same_ray_and_ne_zero exists_pos_left_iff_sameRay_and_ne_zeroₓ'. -/
theorem exists_pos_left_iff_sameRay_and_ne_zero (hx : x ≠ 0) :
(∃ r : R, 0 < r ∧ r • x = y) ↔ SameRay R x y ∧ y ≠ 0 :=
by
@@ -1099,9 +739,6 @@ theorem exists_pos_left_iff_sameRay_and_ne_zero (hx : x ≠ 0) :
exact (exists_pos_left_iff_sameRay hx hy).2 hxy
#align exists_pos_left_iff_same_ray_and_ne_zero exists_pos_left_iff_sameRay_and_ne_zero
-/- warning: exists_nonneg_left_iff_same_ray -> exists_nonneg_left_iff_sameRay is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align exists_nonneg_left_iff_same_ray exists_nonneg_left_iff_sameRayₓ'. -/
theorem exists_nonneg_left_iff_sameRay (hx : x ≠ 0) :
(∃ r : R, 0 ≤ r ∧ r • x = y) ↔ SameRay R x y :=
by
@@ -1110,31 +747,16 @@ theorem exists_nonneg_left_iff_sameRay (hx : x ≠ 0) :
exact SameRay.sameRay_nonneg_smul_right x hr
#align exists_nonneg_left_iff_same_ray exists_nonneg_left_iff_sameRay
-/- warning: exists_pos_right_iff_same_ray -> exists_pos_right_iff_sameRay is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align exists_pos_right_iff_same_ray exists_pos_right_iff_sameRayₓ'. -/
theorem exists_pos_right_iff_sameRay (hx : x ≠ 0) (hy : y ≠ 0) :
(∃ r : R, 0 < r ∧ x = r • y) ↔ SameRay R x y := by
simpa only [SameRay.sameRay_comm, eq_comm] using exists_pos_left_iff_sameRay hy hx
#align exists_pos_right_iff_same_ray exists_pos_right_iff_sameRay
-/- warning: exists_pos_right_iff_same_ray_and_ne_zero -> exists_pos_right_iff_sameRay_and_ne_zero is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, (Ne.{succ u2} M y (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (Iff (Exists.{succ u1} R (fun (r : R) => And (LT.lt.{u1} R (Preorder.toHasLt.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) r) (Eq.{succ u2} M x (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r y)))) (And (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x y) (Ne.{succ u2} M x (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))))))))))
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (DivisionSemiring.toSemiring.{u1} R (Semifield.toDivisionSemiring.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, (Ne.{succ u2} M y (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2)))))))) -> (Iff (Exists.{succ u1} R (fun (r : R) => And (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (StrictOrderedRing.toPartialOrder.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)))))) (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CommGroupWithZero.toCommMonoidWithZero.{u1} R (Semifield.toCommGroupWithZero.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))))))) r) (Eq.{succ u2} M x (HSMul.hSMul.{u1, u2, u2} R M M (instHSMul.{u1, u2} R M (SMulZeroClass.toSMul.{u1, u2} R M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CommGroupWithZero.toCommMonoidWithZero.{u1} R (Semifield.toCommGroupWithZero.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (DivisionSemiring.toSemiring.{u1} R (Semifield.toDivisionSemiring.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} R M (DivisionSemiring.toSemiring.{u1} R (Semifield.toDivisionSemiring.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) r y)))) (And (SameRay.{u1, u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x y) (Ne.{succ u2} M x (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))))))))
-Case conversion may be inaccurate. Consider using '#align exists_pos_right_iff_same_ray_and_ne_zero exists_pos_right_iff_sameRay_and_ne_zeroₓ'. -/
theorem exists_pos_right_iff_sameRay_and_ne_zero (hy : y ≠ 0) :
(∃ r : R, 0 < r ∧ x = r • y) ↔ SameRay R x y ∧ x ≠ 0 := by
simpa only [SameRay.sameRay_comm, eq_comm] using exists_pos_left_iff_sameRay_and_ne_zero hy
#align exists_pos_right_iff_same_ray_and_ne_zero exists_pos_right_iff_sameRay_and_ne_zero
-/- warning: exists_nonneg_right_iff_same_ray -> exists_nonneg_right_iff_sameRay is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, (Ne.{succ u2} M y (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (Iff (Exists.{succ u1} R (fun (r : R) => And (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) r) (Eq.{succ u2} M x (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r y)))) (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x y))
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (DivisionSemiring.toSemiring.{u1} R (Semifield.toDivisionSemiring.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, (Ne.{succ u2} M y (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2)))))))) -> (Iff (Exists.{succ u1} R (fun (r : R) => And (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (StrictOrderedRing.toPartialOrder.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)))))) (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CommGroupWithZero.toCommMonoidWithZero.{u1} R (Semifield.toCommGroupWithZero.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))))))) r) (Eq.{succ u2} M x (HSMul.hSMul.{u1, u2, u2} R M M (instHSMul.{u1, u2} R M (SMulZeroClass.toSMul.{u1, u2} R M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CommGroupWithZero.toCommMonoidWithZero.{u1} R (Semifield.toCommGroupWithZero.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (DivisionSemiring.toSemiring.{u1} R (Semifield.toDivisionSemiring.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} R M (DivisionSemiring.toSemiring.{u1} R (Semifield.toDivisionSemiring.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) r y)))) (SameRay.{u1, u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x y))
-Case conversion may be inaccurate. Consider using '#align exists_nonneg_right_iff_same_ray exists_nonneg_right_iff_sameRayₓ'. -/
theorem exists_nonneg_right_iff_sameRay (hy : y ≠ 0) :
(∃ r : R, 0 ≤ r ∧ x = r • y) ↔ SameRay R x y := by
simpa only [SameRay.sameRay_comm, eq_comm] using exists_nonneg_left_iff_sameRay hy
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -82,9 +82,7 @@ theorem zero_right (x : M) : SameRay R x 0 :=
#print SameRay.of_subsingleton /-
@[nontriviality]
-theorem of_subsingleton [Subsingleton M] (x y : M) : SameRay R x y :=
- by
- rw [Subsingleton.elim x 0]
+theorem of_subsingleton [Subsingleton M] (x y : M) : SameRay R x y := by rw [Subsingleton.elim x 0];
exact zero_left _
#align same_ray.of_subsingleton SameRay.of_subsingleton
-/
@@ -186,9 +184,7 @@ Case conversion may be inaccurate. Consider using '#align same_ray_nonneg_smul_r
theorem SameRay.sameRay_nonneg_smul_right (v : M) {r : R} (h : 0 ≤ r) : SameRay R v (r • v) :=
Or.inr <|
h.eq_or_lt.imp (fun h => h ▸ zero_smul R v) fun h =>
- ⟨r, 1, h, by
- nontriviality R
- exact zero_lt_one, (one_smul _ _).symm⟩
+ ⟨r, 1, h, by nontriviality R; exact zero_lt_one, (one_smul _ _).symm⟩
#align same_ray_nonneg_smul_right SameRay.sameRay_nonneg_smul_right
/- warning: same_ray_pos_smul_right -> SameRay.sameRay_pos_smul_right is a dubious translation:
@@ -944,12 +940,10 @@ theorem sameRay_or_sameRay_neg_iff_not_linearIndependent {x y : M} :
· rcases h with ((hx0 | hy0 | ⟨r₁, r₂, hr₁, hr₂, h⟩) | (hx0 | hy0 | ⟨r₁, r₂, hr₁, hr₂, h⟩))
· exact False.elim (hx hx0)
· exact False.elim (hy hy0)
- · refine' ⟨![r₁, -r₂], _⟩
- simp [h, hr₁.ne.symm]
+ · refine' ⟨![r₁, -r₂], _⟩; simp [h, hr₁.ne.symm]
· exact False.elim (hx hx0)
· exact False.elim (hy (neg_eq_zero.1 hy0))
- · refine' ⟨![r₁, r₂], _⟩
- simp [h, hr₁.ne.symm]
+ · refine' ⟨![r₁, r₂], _⟩; simp [h, hr₁.ne.symm]
· rcases h with ⟨m, hm, hmne⟩
change m 0 • x + m 1 • y = 0 at hm
rw [add_eq_zero_iff_eq_neg] at hm
@@ -958,19 +952,15 @@ theorem sameRay_or_sameRay_neg_iff_not_linearIndependent {x y : M} :
· refine'
Or.inr (Or.inr (Or.inr ⟨-m 0, -m 1, Left.neg_pos_iff.2 hm0, Left.neg_pos_iff.2 hm1, _⟩))
simp [hm]
- · exfalso
- simpa [hm1, hx, hm0.ne] using hm
+ · exfalso; simpa [hm1, hx, hm0.ne] using hm
· refine' Or.inl (Or.inr (Or.inr ⟨-m 0, m 1, Left.neg_pos_iff.2 hm0, hm1, _⟩))
simp [hm]
- · exfalso
- simpa [hm0, hy, hm1.ne] using hm
+ · exfalso; simpa [hm0, hy, hm1.ne] using hm
· refine' False.elim (not_and_or.2 hmne ⟨hm0, hm1⟩)
- · exfalso
- simpa [hm0, hy, hm1.ne.symm] using hm
+ · exfalso; simpa [hm0, hy, hm1.ne.symm] using hm
· refine' Or.inl (Or.inr (Or.inr ⟨m 0, -m 1, hm0, Left.neg_pos_iff.2 hm1, _⟩))
simp [hm]
- · exfalso
- simpa [hm1, hx, hm0.ne.symm] using hm
+ · exfalso; simpa [hm1, hx, hm0.ne.symm] using hm
· refine' Or.inr (Or.inr (Or.inr ⟨m 0, m 1, hm0, hm1, _⟩))
simp [hm]
#align same_ray_or_same_ray_neg_iff_not_linear_independent sameRay_or_sameRay_neg_iff_not_linearIndependent
@@ -1057,10 +1047,8 @@ theorem exists_eq_smul_add (h : SameRay R v₁ v₂) :
∃ a b : R, 0 ≤ a ∧ 0 ≤ b ∧ a + b = 1 ∧ v₁ = a • (v₁ + v₂) ∧ v₂ = b • (v₁ + v₂) :=
by
rcases h with (rfl | rfl | ⟨r₁, r₂, h₁, h₂, H⟩)
- · use 0, 1
- simp
- · use 1, 0
- simp
+ · use 0, 1; simp
+ · use 1, 0; simp
· have h₁₂ : 0 < r₁ + r₂ := add_pos h₁ h₂
refine'
⟨r₂ / (r₁ + r₂), r₁ / (r₁ + r₂), div_nonneg h₂.le h₁₂.le, div_nonneg h₁.le h₁₂.le, _, _, _⟩
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -137,10 +137,7 @@ theorem symm (h : SameRay R x y) : SameRay R y x :=
#align same_ray.symm SameRay.symm
/- warning: same_ray.exists_pos -> SameRay.exists_pos is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {x : M} {y : M}, (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x y) -> (Ne.{succ u2} M x (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))) -> (Ne.{succ u2} M y (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))) -> (Exists.{succ u1} R (fun (r₁ : R) => Exists.{succ u1} R (fun (r₂ : R) => And (LT.lt.{u1} R (Preorder.toHasLt.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedCancelAddCommMonoid.toPartialOrder.{u1} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))))))) r₁) (And (LT.lt.{u1} R (Preorder.toHasLt.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedCancelAddCommMonoid.toPartialOrder.{u1} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))))))) r₂) (Eq.{succ u2} M (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) r₁ x) (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) r₂ y))))))
-but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] {x : M} {y : M}, (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 x y) -> (Ne.{succ u1} M x (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2))))) -> (Ne.{succ u1} M y (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2))))) -> (Exists.{succ u2} R (fun (r₁ : R) => Exists.{succ u2} R (fun (r₂ : R) => And (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedSemiring.toPartialOrder.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))))) r₁) (And (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedSemiring.toPartialOrder.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))))) r₂) (Eq.{succ u1} M (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3))))) r₁ x) (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3))))) r₂ y))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align same_ray.exists_pos SameRay.exists_posₓ'. -/
/-- If `x` and `y` are nonzero vectors on the same ray, then there exist positive numbers `r₁ r₂`
such that `r₁ • x = r₂ • y`. -/
@@ -272,10 +269,7 @@ theorem pos_smul_left {r : R} (h : SameRay R x y) (hr : 0 < r) : SameRay R (r
#align same_ray.pos_smul_left SameRay.pos_smul_left
/- warning: same_ray.map -> SameRay.map is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {N : Type.{u3}} [_inst_4 : AddCommMonoid.{u3} N] [_inst_5 : Module.{u1, u3} R N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_4] {x : M} {y : M} (f : LinearMap.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) M N _inst_2 _inst_4 _inst_3 _inst_5), (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x y) -> (SameRay.{u1, u3} R _inst_1 N _inst_4 _inst_5 (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) M N _inst_2 _inst_4 _inst_3 _inst_5) (fun (_x : LinearMap.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) M N _inst_2 _inst_4 _inst_3 _inst_5) => M -> N) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} R R M N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) f x) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) M N _inst_2 _inst_4 _inst_3 _inst_5) (fun (_x : LinearMap.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) M N _inst_2 _inst_4 _inst_3 _inst_5) => M -> N) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} R R M N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) f y))
-but is expected to have type
- forall {R : Type.{u3}} [_inst_1 : StrictOrderedCommSemiring.{u3} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2] {N : Type.{u1}} [_inst_4 : AddCommMonoid.{u1} N] [_inst_5 : Module.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4] {x : M} {y : M} (f : LinearMap.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) M N _inst_2 _inst_4 _inst_3 _inst_5), (SameRay.{u3, u2} R _inst_1 M _inst_2 _inst_3 x y) -> (SameRay.{u3, u1} R _inst_1 ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => N) x) _inst_4 _inst_5 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) M N _inst_2 _inst_4 _inst_3 _inst_5) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => N) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} R R M N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))))) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) M N _inst_2 _inst_4 _inst_3 _inst_5) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => N) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} R R M N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))))) f y))
+<too large>
Case conversion may be inaccurate. Consider using '#align same_ray.map SameRay.mapₓ'. -/
/-- If two vectors are on the same ray then they remain so after applying a linear map. -/
theorem map (f : M →ₗ[R] N) (h : SameRay R x y) : SameRay R (f x) (f y) :=
@@ -285,10 +279,7 @@ theorem map (f : M →ₗ[R] N) (h : SameRay R x y) : SameRay R (f x) (f y) :=
#align same_ray.map SameRay.map
/- warning: function.injective.same_ray_map_iff -> Function.Injective.sameRay_map_iff is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {N : Type.{u3}} [_inst_4 : AddCommMonoid.{u3} N] [_inst_5 : Module.{u1, u3} R N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_4] {x : M} {y : M} {F : Type.{u4}} [_inst_7 : LinearMapClass.{u4, u1, u2, u3} F R M N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5] {f : F}, (Function.Injective.{succ u2, succ u3} M N (coeFn.{succ u4, max (succ u2) (succ u3)} F (fun (_x : F) => M -> N) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} F M (fun (_x : M) => N) (SMulHomClass.toFunLike.{u4, u1, u2, u3} F R M N (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (DistribSMul.toSmulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) (SMulZeroClass.toHasSmul.{u1, u3} R N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N (AddCommMonoid.toAddMonoid.{u3} N _inst_4))) (DistribSMul.toSmulZeroClass.{u1, u3} R N (AddMonoid.toAddZeroClass.{u3} N (AddCommMonoid.toAddMonoid.{u3} N _inst_4)) (DistribMulAction.toDistribSMul.{u1, u3} R N (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} N _inst_4) (Module.toDistribMulAction.{u1, u3} R N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_4 _inst_5)))) (DistribMulActionHomClass.toSmulHomClass.{u4, u1, u2, u3} F R M N (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (AddCommMonoid.toAddMonoid.{u3} N _inst_4) (Module.toDistribMulAction.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3) (Module.toDistribMulAction.{u1, u3} R N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_4 _inst_5) (SemilinearMapClass.distribMulActionHomClass.{u1, u2, u3, u4} R M N F (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 _inst_7)))) f)) -> (Iff (SameRay.{u1, u3} R _inst_1 N _inst_4 _inst_5 (coeFn.{succ u4, max (succ u2) (succ u3)} F (fun (_x : F) => M -> N) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} F M (fun (_x : M) => N) (SMulHomClass.toFunLike.{u4, u1, u2, u3} F R M N (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (DistribSMul.toSmulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) (SMulZeroClass.toHasSmul.{u1, u3} R N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N (AddCommMonoid.toAddMonoid.{u3} N _inst_4))) (DistribSMul.toSmulZeroClass.{u1, u3} R N (AddMonoid.toAddZeroClass.{u3} N (AddCommMonoid.toAddMonoid.{u3} N _inst_4)) (DistribMulAction.toDistribSMul.{u1, u3} R N (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} N _inst_4) (Module.toDistribMulAction.{u1, u3} R N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_4 _inst_5)))) (DistribMulActionHomClass.toSmulHomClass.{u4, u1, u2, u3} F R M N (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (AddCommMonoid.toAddMonoid.{u3} N _inst_4) (Module.toDistribMulAction.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3) (Module.toDistribMulAction.{u1, u3} R N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_4 _inst_5) (SemilinearMapClass.distribMulActionHomClass.{u1, u2, u3, u4} R M N F (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 _inst_7)))) f x) (coeFn.{succ u4, max (succ u2) (succ u3)} F (fun (_x : F) => M -> N) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} F M (fun (_x : M) => N) (SMulHomClass.toFunLike.{u4, u1, u2, u3} F R M N (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (DistribSMul.toSmulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) (SMulZeroClass.toHasSmul.{u1, u3} R N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N (AddCommMonoid.toAddMonoid.{u3} N _inst_4))) (DistribSMul.toSmulZeroClass.{u1, u3} R N (AddMonoid.toAddZeroClass.{u3} N (AddCommMonoid.toAddMonoid.{u3} N _inst_4)) (DistribMulAction.toDistribSMul.{u1, u3} R N (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} N _inst_4) (Module.toDistribMulAction.{u1, u3} R N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_4 _inst_5)))) (DistribMulActionHomClass.toSmulHomClass.{u4, u1, u2, u3} F R M N (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (AddCommMonoid.toAddMonoid.{u3} N _inst_4) (Module.toDistribMulAction.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3) (Module.toDistribMulAction.{u1, u3} R N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_4 _inst_5) (SemilinearMapClass.distribMulActionHomClass.{u1, u2, u3, u4} R M N F (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 _inst_7)))) f y)) (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x y))
-but is expected to have type
- forall {R : Type.{u3}} [_inst_1 : StrictOrderedCommSemiring.{u3} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2] {N : Type.{u1}} [_inst_4 : AddCommMonoid.{u1} N] [_inst_5 : Module.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4] {x : M} {y : M} {F : Type.{u4}} [_inst_7 : LinearMapClass.{u4, u3, u2, u1} F R M N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5] {f : F}, (Function.Injective.{succ u2, succ u1} M N (FunLike.coe.{succ u4, succ u2, succ u1} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M) => N) _x) (SMulHomClass.toFunLike.{u4, u3, u2, u1} F R M N (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u3, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u3, u2} R M (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_3)))) (SMulZeroClass.toSMul.{u3, u1} R N (AddMonoid.toZero.{u1} N (AddCommMonoid.toAddMonoid.{u1} N _inst_4)) (DistribSMul.toSMulZeroClass.{u3, u1} R N (AddMonoid.toAddZeroClass.{u1} N (AddCommMonoid.toAddMonoid.{u1} N _inst_4)) (DistribMulAction.toDistribSMul.{u3, u1} R N (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} N _inst_4) (Module.toDistribMulAction.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4 _inst_5)))) (DistribMulActionHomClass.toSMulHomClass.{u4, u3, u2, u1} F R M N (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (AddCommMonoid.toAddMonoid.{u1} N _inst_4) (Module.toDistribMulAction.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_3) (Module.toDistribMulAction.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4 _inst_5) (SemilinearMapClass.distribMulActionHomClass.{u3, u2, u1, u4} R M N F (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 _inst_7))) f)) -> (Iff (SameRay.{u3, u1} R _inst_1 ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M) => N) x) _inst_4 _inst_5 (FunLike.coe.{succ u4, succ u2, succ u1} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M) => N) _x) (SMulHomClass.toFunLike.{u4, u3, u2, u1} F R M N (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u3, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u3, u2} R M (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_3)))) (SMulZeroClass.toSMul.{u3, u1} R N (AddMonoid.toZero.{u1} N (AddCommMonoid.toAddMonoid.{u1} N _inst_4)) (DistribSMul.toSMulZeroClass.{u3, u1} R N (AddMonoid.toAddZeroClass.{u1} N (AddCommMonoid.toAddMonoid.{u1} N _inst_4)) (DistribMulAction.toDistribSMul.{u3, u1} R N (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} N _inst_4) (Module.toDistribMulAction.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4 _inst_5)))) (DistribMulActionHomClass.toSMulHomClass.{u4, u3, u2, u1} F R M N (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (AddCommMonoid.toAddMonoid.{u1} N _inst_4) (Module.toDistribMulAction.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_3) (Module.toDistribMulAction.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4 _inst_5) (SemilinearMapClass.distribMulActionHomClass.{u3, u2, u1, u4} R M N F (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 _inst_7))) f x) (FunLike.coe.{succ u4, succ u2, succ u1} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M) => N) _x) (SMulHomClass.toFunLike.{u4, u3, u2, u1} F R M N (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u3, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u3, u2} R M (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_3)))) (SMulZeroClass.toSMul.{u3, u1} R N (AddMonoid.toZero.{u1} N (AddCommMonoid.toAddMonoid.{u1} N _inst_4)) (DistribSMul.toSMulZeroClass.{u3, u1} R N (AddMonoid.toAddZeroClass.{u1} N (AddCommMonoid.toAddMonoid.{u1} N _inst_4)) (DistribMulAction.toDistribSMul.{u3, u1} R N (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} N _inst_4) (Module.toDistribMulAction.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4 _inst_5)))) (DistribMulActionHomClass.toSMulHomClass.{u4, u3, u2, u1} F R M N (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (AddCommMonoid.toAddMonoid.{u1} N _inst_4) (Module.toDistribMulAction.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_3) (Module.toDistribMulAction.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4 _inst_5) (SemilinearMapClass.distribMulActionHomClass.{u3, u2, u1, u4} R M N F (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 _inst_7))) f y)) (SameRay.{u3, u2} R _inst_1 M _inst_2 _inst_3 x y))
+<too large>
Case conversion may be inaccurate. Consider using '#align function.injective.same_ray_map_iff Function.Injective.sameRay_map_iffₓ'. -/
/-- The images of two vectors under an injective linear map are on the same ray if and only if the
original vectors are on the same ray. -/
@@ -298,10 +289,7 @@ theorem Function.Injective.sameRay_map_iff {F : Type _} [LinearMapClass F R M N]
#align function.injective.same_ray_map_iff Function.Injective.sameRay_map_iff
/- warning: same_ray_map_iff -> SameRay.sameRay_map_iff is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {N : Type.{u3}} [_inst_4 : AddCommMonoid.{u3} N] [_inst_5 : Module.{u1, u3} R N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_4] {x : M} {y : M} (e : LinearEquiv.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5), Iff (SameRay.{u1, u3} R _inst_1 N _inst_4 _inst_5 (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearEquiv.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) (fun (_x : LinearEquiv.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) => M -> N) (LinearEquiv.hasCoeToFun.{u1, u1, u2, u3} R R M N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) e x) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearEquiv.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) (fun (_x : LinearEquiv.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) => M -> N) (LinearEquiv.hasCoeToFun.{u1, u1, u2, u3} R R M N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) e y)) (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x y)
-but is expected to have type
- forall {R : Type.{u3}} [_inst_1 : StrictOrderedCommSemiring.{u3} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2] {N : Type.{u1}} [_inst_4 : AddCommMonoid.{u1} N] [_inst_5 : Module.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4] {x : M} {y : M} (e : LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5), Iff (SameRay.{u3, u1} R _inst_1 ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M) => N) x) _inst_4 _inst_5 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M) => N) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) R M N (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u3, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u3, u2} R M (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_3)))) (SMulZeroClass.toSMul.{u3, u1} R N (AddMonoid.toZero.{u1} N (AddCommMonoid.toAddMonoid.{u1} N _inst_4)) (DistribSMul.toSMulZeroClass.{u3, u1} R N (AddMonoid.toAddZeroClass.{u1} N (AddCommMonoid.toAddMonoid.{u1} N _inst_4)) (DistribMulAction.toDistribSMul.{u3, u1} R N (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} N _inst_4) (Module.toDistribMulAction.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4 _inst_5)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) R M N (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (AddCommMonoid.toAddMonoid.{u1} N _inst_4) (Module.toDistribMulAction.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_3) (Module.toDistribMulAction.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4 _inst_5) (SemilinearMapClass.distribMulActionHomClass.{u3, u2, u1, max u2 u1} R M N (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (SemilinearEquivClass.instSemilinearMapClass.{u3, u3, u2, u1, max u2 u1} R R M N (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u3, u3, u2, u1} R R M N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))))))) e x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M) => N) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) R M N (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u3, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u3, u2} R M (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_3)))) (SMulZeroClass.toSMul.{u3, u1} R N (AddMonoid.toZero.{u1} N (AddCommMonoid.toAddMonoid.{u1} N _inst_4)) (DistribSMul.toSMulZeroClass.{u3, u1} R N (AddMonoid.toAddZeroClass.{u1} N (AddCommMonoid.toAddMonoid.{u1} N _inst_4)) (DistribMulAction.toDistribSMul.{u3, u1} R N (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} N _inst_4) (Module.toDistribMulAction.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4 _inst_5)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) R M N (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (AddCommMonoid.toAddMonoid.{u1} N _inst_4) (Module.toDistribMulAction.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_3) (Module.toDistribMulAction.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4 _inst_5) (SemilinearMapClass.distribMulActionHomClass.{u3, u2, u1, max u2 u1} R M N (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (SemilinearEquivClass.instSemilinearMapClass.{u3, u3, u2, u1, max u2 u1} R R M N (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u3, u3, u2, u1} R R M N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))))))) e y)) (SameRay.{u3, u2} R _inst_1 M _inst_2 _inst_3 x y)
+<too large>
Case conversion may be inaccurate. Consider using '#align same_ray_map_iff SameRay.sameRay_map_iffₓ'. -/
/-- The images of two vectors under a linear equivalence are on the same ray if and only if the
original vectors are on the same ray. -/
@@ -486,10 +474,7 @@ def Module.Ray.map (e : M ≃ₗ[R] N) : Module.Ray R M ≃ Module.Ray R N :=
-/
/- warning: module.ray.map_apply -> Module.Ray.map_apply is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {N : Type.{u3}} [_inst_4 : AddCommMonoid.{u3} N] [_inst_5 : Module.{u1, u3} R N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_4] (e : LinearEquiv.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) (v : M) (hv : Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))), Eq.{succ u3} (Module.Ray.{u1, u3} R _inst_1 N _inst_4 _inst_5) (coeFn.{max 1 (max (succ u2) (succ u3)) (succ u3) (succ u2), max (succ u2) (succ u3)} (Equiv.{succ u2, succ u3} (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u1, u3} R _inst_1 N _inst_4 _inst_5)) (fun (_x : Equiv.{succ u2, succ u3} (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u1, u3} R _inst_1 N _inst_4 _inst_5)) => (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) -> (Module.Ray.{u1, u3} R _inst_1 N _inst_4 _inst_5)) (Equiv.hasCoeToFun.{succ u2, succ u3} (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u1, u3} R _inst_1 N _inst_4 _inst_5)) (Module.Ray.map.{u1, u2, u3} R _inst_1 M _inst_2 _inst_3 N _inst_4 _inst_5 e) (rayOfNeZero.{u1, u2} R _inst_1 M _inst_2 _inst_3 v hv)) (rayOfNeZero.{u1, u3} R _inst_1 N _inst_4 _inst_5 (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearEquiv.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) (fun (_x : LinearEquiv.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) => M -> N) (LinearEquiv.hasCoeToFun.{u1, u1, u2, u3} R R M N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) e v) (Iff.mpr (Ne.{succ u3} N (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearEquiv.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) (fun (_x : LinearEquiv.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) => M -> N) (LinearEquiv.hasCoeToFun.{u1, u1, u2, u3} R R M N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) e v) (OfNat.ofNat.{u3} N 0 (OfNat.mk.{u3} N 0 (Zero.zero.{u3} N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N (AddCommMonoid.toAddMonoid.{u3} N _inst_4))))))) (Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))) (LinearEquiv.map_ne_zero_iff.{u1, u1, u2, u3} R R M N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) e v) hv))
-but is expected to have type
- forall {R : Type.{u3}} [_inst_1 : StrictOrderedCommSemiring.{u3} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2] {N : Type.{u1}} [_inst_4 : AddCommMonoid.{u1} N] [_inst_5 : Module.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4] (e : LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) (v : M) (hv : Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))), Eq.{succ u1} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Module.Ray.{u3, u2} R _inst_1 M _inst_2 _inst_3) => Module.Ray.{u3, u1} R _inst_1 N _inst_4 _inst_5) (rayOfNeZero.{u3, u2} R _inst_1 M _inst_2 _inst_3 v hv)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Equiv.{succ u2, succ u1} (Module.Ray.{u3, u2} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u3, u1} R _inst_1 N _inst_4 _inst_5)) (Module.Ray.{u3, u2} R _inst_1 M _inst_2 _inst_3) (fun (_x : Module.Ray.{u3, u2} R _inst_1 M _inst_2 _inst_3) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Module.Ray.{u3, u2} R _inst_1 M _inst_2 _inst_3) => Module.Ray.{u3, u1} R _inst_1 N _inst_4 _inst_5) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} (Module.Ray.{u3, u2} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u3, u1} R _inst_1 N _inst_4 _inst_5)) (Module.Ray.map.{u3, u2, u1} R _inst_1 M _inst_2 _inst_3 N _inst_4 _inst_5 e) (rayOfNeZero.{u3, u2} R _inst_1 M _inst_2 _inst_3 v hv)) (rayOfNeZero.{u3, u1} R _inst_1 ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M) => N) v) _inst_4 _inst_5 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M) => N) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) R M N (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u3, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u3, u2} R M (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_3)))) (SMulZeroClass.toSMul.{u3, u1} R N (AddMonoid.toZero.{u1} N (AddCommMonoid.toAddMonoid.{u1} N _inst_4)) (DistribSMul.toSMulZeroClass.{u3, u1} R N (AddMonoid.toAddZeroClass.{u1} N (AddCommMonoid.toAddMonoid.{u1} N _inst_4)) (DistribMulAction.toDistribSMul.{u3, u1} R N (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} N _inst_4) (Module.toDistribMulAction.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4 _inst_5)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) R M N (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (AddCommMonoid.toAddMonoid.{u1} N _inst_4) (Module.toDistribMulAction.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_3) (Module.toDistribMulAction.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4 _inst_5) (SemilinearMapClass.distribMulActionHomClass.{u3, u2, u1, max u2 u1} R M N (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (SemilinearEquivClass.instSemilinearMapClass.{u3, u3, u2, u1, max u2 u1} R R M N (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u3, u3, u2, u1} R R M N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))))))) e v) (Iff.mpr (Ne.{succ u1} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : M) => N) v) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) M (fun (_x : M) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : M) => N) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) M N (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) M N (AddEquivClass.toEquivLike.{max u2 u1, u2, u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) M N (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (AddZeroClass.toAdd.{u1} N (AddMonoid.toAddZeroClass.{u1} N (AddCommMonoid.toAddMonoid.{u1} N _inst_4))) (SemilinearEquivClass.toAddEquivClass.{max u2 u1, u3, u3, u2, u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5 (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u3, u3, u2, u1} R R M N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))))))) e v) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : M) => N) v) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : M) => N) v) (AddMonoid.toZero.{u1} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : M) => N) v) (AddCommMonoid.toAddMonoid.{u1} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : M) => N) v) _inst_4))))) (Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))) (LinearEquiv.map_ne_zero_iff.{u3, u3, u2, u1} R R M N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) e v) hv))
+<too large>
Case conversion may be inaccurate. Consider using '#align module.ray.map_apply Module.Ray.map_applyₓ'. -/
@[simp]
theorem Module.Ray.map_apply (e : M ≃ₗ[R] N) (v : M) (hv : v ≠ 0) :
@@ -538,10 +523,7 @@ instance : MulAction G (Module.Ray R M)
one_smul := Quotient.ind fun m => congr_arg Quotient.mk' <| one_smul _ _
/- warning: module.ray.linear_equiv_smul_eq_map -> Module.Ray.linearEquiv_smul_eq_map is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] (e : LinearEquiv.{u1, u1, u2, u2} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (v : Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3), Eq.{succ u2} (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (SMul.smul.{u2, u2} (LinearEquiv.{u1, u1, u2, u2} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (MulAction.toHasSmul.{u2, u2} (LinearEquiv.{u1, u1, u2, u2} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (DivInvMonoid.toMonoid.{u2} (LinearEquiv.{u1, u1, u2, u2} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (Group.toDivInvMonoid.{u2} (LinearEquiv.{u1, u1, u2, u2} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (LinearEquiv.automorphismGroup.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3))) (Module.Ray.mulAction.{u1, u2, u2} R _inst_1 M _inst_2 _inst_3 (LinearEquiv.{u1, u1, u2, u2} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (LinearEquiv.automorphismGroup.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3) (LinearEquiv.applyDistribMulAction.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3) (LinearEquiv.apply_smulCommClass.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3))) e v) (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3)) (fun (_x : Equiv.{succ u2, succ u2} (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3)) => (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) -> (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3)) (Equiv.hasCoeToFun.{succ u2, succ u2} (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3)) (Module.Ray.map.{u1, u2, u2} R _inst_1 M _inst_2 _inst_3 M _inst_2 _inst_3 e) v)
-but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] (e : LinearEquiv.{u2, u2, u1, u1} R R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (v : Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3), Eq.{succ u1} (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (HSMul.hSMul.{u1, u1, u1} (LinearEquiv.{u2, u2, u1, u1} R R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (instHSMul.{u1, u1} (LinearEquiv.{u2, u2, u1, u1} R R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (MulAction.toSMul.{u1, u1} (LinearEquiv.{u2, u2, u1, u1} R R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (DivInvMonoid.toMonoid.{u1} (LinearEquiv.{u2, u2, u1, u1} R R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (Group.toDivInvMonoid.{u1} (LinearEquiv.{u2, u2, u1, u1} R R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (LinearEquiv.automorphismGroup.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3))) (instMulActionRayToMonoidToDivInvMonoid.{u2, u1, u1} R _inst_1 M _inst_2 _inst_3 (LinearEquiv.{u2, u2, u1, u1} R R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (LinearEquiv.automorphismGroup.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3) (LinearEquiv.applyDistribMulAction.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3) (LinearEquiv.apply_smulCommClass.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3)))) e v) (FunLike.coe.{succ u1, succ u1, succ u1} (Equiv.{succ u1, succ u1} (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3)) (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (fun (_x : Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) => Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u1} (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3)) (Module.Ray.map.{u2, u1, u1} R _inst_1 M _inst_2 _inst_3 M _inst_2 _inst_3 e) v)
+<too large>
Case conversion may be inaccurate. Consider using '#align module.ray.linear_equiv_smul_eq_map Module.Ray.linearEquiv_smul_eq_mapₓ'. -/
/-- The action via `linear_equiv.apply_distrib_mul_action` corresponds to `module.ray.map`. -/
@[simp]
@@ -551,10 +533,7 @@ theorem Module.Ray.linearEquiv_smul_eq_map (e : M ≃ₗ[R] M) (v : Module.Ray R
#align module.ray.linear_equiv_smul_eq_map Module.Ray.linearEquiv_smul_eq_map
/- warning: smul_ray_of_ne_zero -> smul_rayOfNeZero is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {G : Type.{u3}} [_inst_7 : Group.{u3} G] [_inst_8 : DistribMulAction.{u3, u2} G M (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_7)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2)] [_inst_9 : SMulCommClass.{u1, u3, u2} R G M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) (SMulZeroClass.toHasSmul.{u3, u2} G M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (DistribSMul.toSmulZeroClass.{u3, u2} G M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u3, u2} G M (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_7)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) _inst_8)))] (g : G) (v : M) (hv : Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))), Eq.{succ u2} (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (SMul.smul.{u3, u2} G (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (MulAction.toHasSmul.{u3, u2} G (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_7)) (Module.Ray.mulAction.{u1, u2, u3} R _inst_1 M _inst_2 _inst_3 G _inst_7 _inst_8 _inst_9)) g (rayOfNeZero.{u1, u2} R _inst_1 M _inst_2 _inst_3 v hv)) (rayOfNeZero.{u1, u2} R _inst_1 M _inst_2 _inst_3 (SMul.smul.{u3, u2} G M (SMulZeroClass.toHasSmul.{u3, u2} G M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (DistribSMul.toSmulZeroClass.{u3, u2} G M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u3, u2} G M (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_7)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) _inst_8))) g v) (Iff.mpr (Ne.{succ u2} M (SMul.smul.{u3, u2} G M (SMulZeroClass.toHasSmul.{u3, u2} G M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (DistribSMul.toSmulZeroClass.{u3, u2} G M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u3, u2} G M (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_7)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) _inst_8))) g v) (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))) (Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))) (smul_ne_zero_iff_ne.{u3, u2} G M _inst_7 (AddCommMonoid.toAddMonoid.{u2} M _inst_2) _inst_8 g v) hv))
-but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u3}} [_inst_2 : AddCommMonoid.{u3} M] [_inst_3 : Module.{u2, u3} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] {G : Type.{u1}} [_inst_7 : Group.{u1} G] [_inst_8 : DistribMulAction.{u1, u3} G M (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_7)) (AddCommMonoid.toAddMonoid.{u3} M _inst_2)] [_inst_9 : SMulCommClass.{u2, u1, u3} R G M (SMulZeroClass.toSMul.{u2, u3} R M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u3} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u3} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) (Module.toMulActionWithZero.{u2, u3} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3)))) (SMulZeroClass.toSMul.{u1, u3} G M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) (DistribSMul.toSMulZeroClass.{u1, u3} G M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u3} G M (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_7)) (AddCommMonoid.toAddMonoid.{u3} M _inst_2) _inst_8)))] (g : G) (v : M) (hv : Ne.{succ u3} M v (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2))))), Eq.{succ u3} (Module.Ray.{u2, u3} R _inst_1 M _inst_2 _inst_3) (HSMul.hSMul.{u1, u3, u3} G (Module.Ray.{u2, u3} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u2, u3} R _inst_1 M _inst_2 _inst_3) (instHSMul.{u1, u3} G (Module.Ray.{u2, u3} R _inst_1 M _inst_2 _inst_3) (MulAction.toSMul.{u1, u3} G (Module.Ray.{u2, u3} R _inst_1 M _inst_2 _inst_3) (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_7)) (instMulActionRayToMonoidToDivInvMonoid.{u2, u3, u1} R _inst_1 M _inst_2 _inst_3 G _inst_7 _inst_8 _inst_9))) g (rayOfNeZero.{u2, u3} R _inst_1 M _inst_2 _inst_3 v hv)) (rayOfNeZero.{u2, u3} R _inst_1 M _inst_2 _inst_3 (HSMul.hSMul.{u1, u3, u3} G M M (instHSMul.{u1, u3} G M (SMulZeroClass.toSMul.{u1, u3} G M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) (DistribSMul.toSMulZeroClass.{u1, u3} G M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u3} G M (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_7)) (AddCommMonoid.toAddMonoid.{u3} M _inst_2) _inst_8)))) g v) (Iff.mpr (Ne.{succ u3} M (HSMul.hSMul.{u1, u3, u3} G M M (instHSMul.{u1, u3} G M (SMulZeroClass.toSMul.{u1, u3} G M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) (DistribSMul.toSMulZeroClass.{u1, u3} G M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u3} G M (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_7)) (AddCommMonoid.toAddMonoid.{u3} M _inst_2) _inst_8)))) g v) (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2))))) (Ne.{succ u3} M v (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2))))) (smul_ne_zero_iff_ne.{u1, u3} G M _inst_7 (AddCommMonoid.toAddMonoid.{u3} M _inst_2) _inst_8 g v) hv))
+<too large>
Case conversion may be inaccurate. Consider using '#align smul_ray_of_ne_zero smul_rayOfNeZeroₓ'. -/
@[simp]
theorem smul_rayOfNeZero (g : G) (v : M) (hv) :
@@ -567,10 +546,7 @@ end Action
namespace Module.Ray
/- warning: module.ray.units_smul_of_pos -> Module.Ray.units_smul_of_pos is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] (u : Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))), (LT.lt.{u1} R (Preorder.toHasLt.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedCancelAddCommMonoid.toPartialOrder.{u1} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))))))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) R (HasLiftT.mk.{succ u1, succ u1} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) R (CoeTCₓ.coe.{succ u1, succ u1} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) R (coeBase.{succ u1, succ u1} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) R (Units.hasCoe.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))))) u)) -> (forall (v : Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3), Eq.{succ u2} (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (SMul.smul.{u1, u2} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (MulAction.toHasSmul.{u1, u2} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (DivInvMonoid.toMonoid.{u1} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (Group.toDivInvMonoid.{u1} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (Units.group.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))))) (Module.Ray.mulAction.{u1, u2, u1} R _inst_1 M _inst_2 _inst_3 (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (Units.group.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (Units.distribMulAction.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)) (Units.smulCommClass_right.{u1, u1, u2} R R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) (smulCommClass_self.{u1, u2} R M (CommSemiring.toCommMonoid.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R _inst_1)) (MulActionWithZero.toMulAction.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))))) u v) v)
-but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] (u : Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))))), (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedSemiring.toPartialOrder.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))))) (Units.val.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) u)) -> (forall (v : Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3), Eq.{succ u1} (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (HSMul.hSMul.{u2, u1, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))))) (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (instHSMul.{u2, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))))) (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (MulAction.toSMul.{u2, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))))) (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (DivInvMonoid.toMonoid.{u2} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))))) (Group.toDivInvMonoid.{u2} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))))) (Units.instGroupUnits.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))))))) (instMulActionRayToMonoidToDivInvMonoid.{u2, u1, u2} R _inst_1 M _inst_2 _inst_3 (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))))) (Units.instGroupUnits.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))))) (Units.instDistribMulActionUnitsToMonoidToDivInvMonoidInstGroupUnits.{u2, u1} R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} M _inst_2) (Module.toDistribMulAction.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3)) (Units.smulCommClass_right.{u2, u2, u1} R R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3)))) (SMulZeroClass.toSMul.{u2, u1} R M (AddZeroClass.toZero.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2))) (DistribSMul.toSMulZeroClass.{u2, u1} R M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (DistribMulAction.toDistribSMul.{u2, u1} R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} M _inst_2) (Module.toDistribMulAction.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3)))) (smulCommClass_self.{u2, u1} R M (CommSemiring.toCommMonoid.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1)) (MulActionWithZero.toMulAction.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3))))))) u v) v)
+<too large>
Case conversion may be inaccurate. Consider using '#align module.ray.units_smul_of_pos Module.Ray.units_smul_of_posₓ'. -/
/-- Scaling by a positive unit is a no-op. -/
theorem units_smul_of_pos (u : Rˣ) (hu : 0 < (u : R)) (v : Module.Ray R M) : u • v = v :=
@@ -796,10 +772,7 @@ theorem ne_neg_self [NoZeroSMulDivisors R M] (x : Module.Ray R M) : x ≠ -x :=
#align module.ray.ne_neg_self Module.Ray.ne_neg_self
/- warning: module.ray.neg_units_smul -> Module.Ray.neg_units_smul is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_4 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] (u : Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (v : Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4), Eq.{succ u2} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (SMul.smul.{u1, u2} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (MulAction.toHasSmul.{u1, u2} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (DivInvMonoid.toMonoid.{u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (Group.toDivInvMonoid.{u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (Units.group.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))))) (Module.Ray.mulAction.{u1, u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4 (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (Units.group.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (Units.distribMulAction.{u1, u2} R M (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)) (Module.toDistribMulAction.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4)) (Units.smulCommClass_right.{u1, u1, u2} R R M (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4)))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4)))) (smulCommClass_self.{u1, u2} R M (CommRing.toCommMonoid.{u1} R (StrictOrderedCommRing.toCommRing.{u1} R _inst_1)) (MulActionWithZero.toMulAction.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4)))))) (Neg.neg.{u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (Units.hasNeg.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (NonUnitalNonAssocRing.toHasDistribNeg.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))))) u) v) (Neg.neg.{u2} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Module.Ray.hasNeg.{u1, u2} R _inst_1 M _inst_2 _inst_4) (SMul.smul.{u1, u2} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (MulAction.toHasSmul.{u1, u2} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (DivInvMonoid.toMonoid.{u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (Group.toDivInvMonoid.{u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (Units.group.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))))) (Module.Ray.mulAction.{u1, u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4 (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (Units.group.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (Units.distribMulAction.{u1, u2} R M (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)) (Module.toDistribMulAction.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4)) (Units.smulCommClass_right.{u1, u1, u2} R R M (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4)))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4)))) (smulCommClass_self.{u1, u2} R M (CommRing.toCommMonoid.{u1} R (StrictOrderedCommRing.toCommRing.{u1} R _inst_1)) (MulActionWithZero.toMulAction.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4)))))) u v))
-but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_4 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] (u : Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))))) (v : Module.Ray.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4), Eq.{succ u1} (Module.Ray.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4) (HSMul.hSMul.{u2, u1, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))))) (Module.Ray.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4) (Module.Ray.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4) (instHSMul.{u2, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))))) (Module.Ray.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4) (MulAction.toSMul.{u2, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))))) (Module.Ray.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4) (DivInvMonoid.toMonoid.{u2} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))))) (Group.toDivInvMonoid.{u2} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))))) (Units.instGroupUnits.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))))))) (instMulActionRayToMonoidToDivInvMonoid.{u2, u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4 (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))))) (Units.instGroupUnits.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))))) (Units.instDistribMulActionUnitsToMonoidToDivInvMonoidInstGroupUnits.{u2, u1} R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))))) (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)) (Module.toDistribMulAction.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4)) (Units.smulCommClass_right.{u2, u2, u1} R R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))))) (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4)))) (SMulZeroClass.toSMul.{u2, u1} R M (AddZeroClass.toZero.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)))) (DistribSMul.toSMulZeroClass.{u2, u1} R M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (DistribMulAction.toDistribSMul.{u2, u1} R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))))) (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)) (Module.toDistribMulAction.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4)))) (smulCommClass_self.{u2, u1} R M (CommRing.toCommMonoid.{u2} R (StrictOrderedCommRing.toCommRing.{u2} R _inst_1)) (MulActionWithZero.toMulAction.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4))))))) (Neg.neg.{u2} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))))) (Units.instNegUnits.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))))) (NonUnitalNonAssocRing.toHasDistribNeg.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (StrictOrderedRing.toRing.{u2} R (StrictOrderedCommRing.toStrictOrderedRing.{u2} R _inst_1)))))) u) v) (Neg.neg.{u1} (Module.Ray.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4) (instNegRayToStrictOrderedCommSemiringToAddCommMonoid.{u2, u1} R _inst_1 M _inst_2 _inst_4) (HSMul.hSMul.{u2, u1, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))))) (Module.Ray.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4) (Module.Ray.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4) (instHSMul.{u2, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))))) (Module.Ray.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4) (MulAction.toSMul.{u2, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))))) (Module.Ray.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4) (DivInvMonoid.toMonoid.{u2} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))))) (Group.toDivInvMonoid.{u2} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))))) (Units.instGroupUnits.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))))))) (instMulActionRayToMonoidToDivInvMonoid.{u2, u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4 (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))))) (Units.instGroupUnits.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))))) (Units.instDistribMulActionUnitsToMonoidToDivInvMonoidInstGroupUnits.{u2, u1} R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))))) (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)) (Module.toDistribMulAction.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4)) (Units.smulCommClass_right.{u2, u2, u1} R R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))))) (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4)))) (SMulZeroClass.toSMul.{u2, u1} R M (AddZeroClass.toZero.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)))) (DistribSMul.toSMulZeroClass.{u2, u1} R M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (DistribMulAction.toDistribSMul.{u2, u1} R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))))) (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)) (Module.toDistribMulAction.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4)))) (smulCommClass_self.{u2, u1} R M (CommRing.toCommMonoid.{u2} R (StrictOrderedCommRing.toCommRing.{u2} R _inst_1)) (MulActionWithZero.toMulAction.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4))))))) u v))
+<too large>
Case conversion may be inaccurate. Consider using '#align module.ray.neg_units_smul Module.Ray.neg_units_smulₓ'. -/
theorem neg_units_smul (u : Rˣ) (v : Module.Ray R M) : -u • v = -(u • v) :=
by
@@ -808,10 +781,7 @@ theorem neg_units_smul (u : Rˣ) (v : Module.Ray R M) : -u • v = -(u • v) :=
#align module.ray.neg_units_smul Module.Ray.neg_units_smul
/- warning: module.ray.units_smul_of_neg -> Module.Ray.units_smul_of_neg is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_4 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] (u : Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))), (LT.lt.{u1} R (Preorder.toHasLt.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) R (HasLiftT.mk.{succ u1, succ u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) R (CoeTCₓ.coe.{succ u1, succ u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) R (coeBase.{succ u1, succ u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) R (Units.hasCoe.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))))) u) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))))))))) -> (forall (v : Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4), Eq.{succ u2} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (SMul.smul.{u1, u2} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (MulAction.toHasSmul.{u1, u2} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (DivInvMonoid.toMonoid.{u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (Group.toDivInvMonoid.{u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (Units.group.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))))) (Module.Ray.mulAction.{u1, u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4 (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (Units.group.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (Units.distribMulAction.{u1, u2} R M (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)) (Module.toDistribMulAction.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4)) (Units.smulCommClass_right.{u1, u1, u2} R R M (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4)))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4)))) (smulCommClass_self.{u1, u2} R M (CommRing.toCommMonoid.{u1} R (StrictOrderedCommRing.toCommRing.{u1} R _inst_1)) (MulActionWithZero.toMulAction.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4)))))) u v) (Neg.neg.{u2} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Module.Ray.hasNeg.{u1, u2} R _inst_1 M _inst_2 _inst_4) v))
-but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_4 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] (u : Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))))), (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (StrictOrderedCommRing.toStrictOrderedRing.{u2} R _inst_1)))) (Units.val.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))))) u) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))))))) -> (forall (v : Module.Ray.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4), Eq.{succ u1} (Module.Ray.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4) (HSMul.hSMul.{u2, u1, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))))) (Module.Ray.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4) (Module.Ray.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4) (instHSMul.{u2, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))))) (Module.Ray.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4) (MulAction.toSMul.{u2, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))))) (Module.Ray.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4) (DivInvMonoid.toMonoid.{u2} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))))) (Group.toDivInvMonoid.{u2} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))))) (Units.instGroupUnits.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))))))) (instMulActionRayToMonoidToDivInvMonoid.{u2, u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4 (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))))) (Units.instGroupUnits.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))))) (Units.instDistribMulActionUnitsToMonoidToDivInvMonoidInstGroupUnits.{u2, u1} R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))))) (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)) (Module.toDistribMulAction.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4)) (Units.smulCommClass_right.{u2, u2, u1} R R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))))) (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4)))) (SMulZeroClass.toSMul.{u2, u1} R M (AddZeroClass.toZero.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)))) (DistribSMul.toSMulZeroClass.{u2, u1} R M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (DistribMulAction.toDistribSMul.{u2, u1} R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))))) (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)) (Module.toDistribMulAction.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4)))) (smulCommClass_self.{u2, u1} R M (CommRing.toCommMonoid.{u2} R (StrictOrderedCommRing.toCommRing.{u2} R _inst_1)) (MulActionWithZero.toMulAction.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4))))))) u v) (Neg.neg.{u1} (Module.Ray.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4) (instNegRayToStrictOrderedCommSemiringToAddCommMonoid.{u2, u1} R _inst_1 M _inst_2 _inst_4) v))
+<too large>
Case conversion may be inaccurate. Consider using '#align module.ray.units_smul_of_neg Module.Ray.units_smul_of_negₓ'. -/
/-- Scaling by a negative unit is negation. -/
theorem units_smul_of_neg (u : Rˣ) (hu : (u : R) < 0) (v : Module.Ray R M) : u • v = -v :=
@@ -821,10 +791,7 @@ theorem units_smul_of_neg (u : Rˣ) (hu : (u : R) < 0) (v : Module.Ray R M) : u
#align module.ray.units_smul_of_neg Module.Ray.units_smul_of_neg
/- warning: module.ray.map_neg -> Module.Ray.map_neg is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u1} R] {M : Type.{u2}} {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : AddCommGroup.{u3} N] [_inst_4 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u3} N _inst_3)] (f : LinearEquiv.{u1, u1, u2, u3} R R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_3) _inst_4 _inst_5) (v : Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4), Eq.{succ u3} (Module.Ray.{u1, u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u3} N _inst_3) _inst_5) (coeFn.{max 1 (max (succ u2) (succ u3)) (succ u3) (succ u2), max (succ u2) (succ u3)} (Equiv.{succ u2, succ u3} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Module.Ray.{u1, u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u3} N _inst_3) _inst_5)) (fun (_x : Equiv.{succ u2, succ u3} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Module.Ray.{u1, u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u3} N _inst_3) _inst_5)) => (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) -> (Module.Ray.{u1, u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u3} N _inst_3) _inst_5)) (Equiv.hasCoeToFun.{succ u2, succ u3} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Module.Ray.{u1, u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u3} N _inst_3) _inst_5)) (Module.Ray.map.{u1, u2, u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4 N (AddCommGroup.toAddCommMonoid.{u3} N _inst_3) _inst_5 f) (Neg.neg.{u2} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Module.Ray.hasNeg.{u1, u2} R _inst_1 M _inst_2 _inst_4) v)) (Neg.neg.{u3} (Module.Ray.{u1, u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u3} N _inst_3) _inst_5) (Module.Ray.hasNeg.{u1, u3} R _inst_1 N _inst_3 _inst_5) (coeFn.{max 1 (max (succ u2) (succ u3)) (succ u3) (succ u2), max (succ u2) (succ u3)} (Equiv.{succ u2, succ u3} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Module.Ray.{u1, u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u3} N _inst_3) _inst_5)) (fun (_x : Equiv.{succ u2, succ u3} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Module.Ray.{u1, u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u3} N _inst_3) _inst_5)) => (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) -> (Module.Ray.{u1, u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u3} N _inst_3) _inst_5)) (Equiv.hasCoeToFun.{succ u2, succ u3} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Module.Ray.{u1, u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u3} N _inst_3) _inst_5)) (Module.Ray.map.{u1, u2, u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4 N (AddCommGroup.toAddCommMonoid.{u3} N _inst_3) _inst_5 f) v))
-but is expected to have type
- forall {R : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u3} R] {M : Type.{u2}} {N : Type.{u1}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : AddCommGroup.{u1} N] [_inst_4 : Module.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_5 : Module.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} N _inst_3)] (f : LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1)))) M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_4 _inst_5) (v : Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4), Eq.{succ u1} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) => Module.Ray.{u3, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_5) (Neg.neg.{u2} (Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (instNegRayToStrictOrderedCommSemiringToAddCommMonoid.{u3, u2} R _inst_1 M _inst_2 _inst_4) v)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Equiv.{succ u2, succ u1} (Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Module.Ray.{u3, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_5)) (Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (fun (_x : Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) => Module.Ray.{u3, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_5) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} (Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Module.Ray.{u3, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_5)) (Module.Ray.map.{u3, u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4 N (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_5 f) (Neg.neg.{u2} (Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (instNegRayToStrictOrderedCommSemiringToAddCommMonoid.{u3, u2} R _inst_1 M _inst_2 _inst_4) v)) (Neg.neg.{u1} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) => Module.Ray.{u3, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_5) v) (instNegRayToStrictOrderedCommSemiringToAddCommMonoid.{u3, u1} R _inst_1 N _inst_3 _inst_5) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Equiv.{succ u2, succ u1} (Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Module.Ray.{u3, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_5)) (Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (fun (_x : Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) => Module.Ray.{u3, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_5) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} (Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Module.Ray.{u3, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_5)) (Module.Ray.map.{u3, u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4 N (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_5 f) v))
+<too large>
Case conversion may be inaccurate. Consider using '#align module.ray.map_neg Module.Ray.map_negₓ'. -/
@[simp]
protected theorem map_neg (f : M ≃ₗ[R] N) (v : Module.Ray R M) : map f (-v) = -map f v :=
@@ -844,10 +811,7 @@ variable {R : Type _} [LinearOrderedCommRing R]
variable {M : Type _} [AddCommGroup M] [Module R M]
/- warning: same_ray_of_mem_orbit -> sameRay_of_mem_orbit is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {v₁ : M} {v₂ : M}, (Membership.Mem.{u2, u2} M (Set.{u2} M) (Set.hasMem.{u2} M) v₁ (MulAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedRing.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))) (Units.group.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedRing.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedRing.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))) (Units.group.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedRing.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedRing.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))) (Subgroup.setLike.{u1} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedRing.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))) (Units.group.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedRing.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))))) (Units.posSubgroup.{u1} R (LinearOrderedRing.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) M (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedRing.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))) (Units.group.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedRing.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedRing.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))) (Units.group.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedRing.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedRing.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))) (Subgroup.setLike.{u1} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedRing.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))) (Units.group.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedRing.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))))) (Units.posSubgroup.{u1} R (LinearOrderedRing.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedRing.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))) (Units.group.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedRing.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedRing.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))) (Units.group.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedRing.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedRing.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))) (Subgroup.setLike.{u1} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedRing.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))) (Units.group.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedRing.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))))) (Units.posSubgroup.{u1} R (LinearOrderedRing.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (Subgroup.toGroup.{u1} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedRing.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))) (Units.group.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedRing.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))) (Units.posSubgroup.{u1} R (LinearOrderedRing.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))) (Subgroup.mulAction.{u1, u2} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedRing.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))) (Units.group.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedRing.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))) M (Units.mulAction.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedRing.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))) (MulActionWithZero.toMulAction.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))) (Units.posSubgroup.{u1} R (LinearOrderedRing.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) v₂)) -> (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 v₁ v₂)
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {v₁ : M} {v₂ : M}, (Membership.mem.{u2, u2} M (Set.{u2} M) (Set.instMembershipSet.{u2} M) v₁ (MulAction.orbit.{u1, u2} (Subtype.{succ u1} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))))))) (fun (x : Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))))))) => Membership.mem.{u1, u1} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))))))) (Subgroup.{u1} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))))))) (Units.instGroupUnits.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1)))))))) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))))))) (Units.instGroupUnits.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1)))))))) (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))))))) (Subgroup.instSetLikeSubgroup.{u1} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))))))) (Units.instGroupUnits.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))))))))) x (Units.posSubgroup.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))))) M (Submonoid.toMonoid.{u1} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))))))) (DivInvMonoid.toMonoid.{u1} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))))))) (Group.toDivInvMonoid.{u1} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))))))) (Units.instGroupUnits.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))))))))) (Subgroup.toSubmonoid.{u1} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))))))) (Units.instGroupUnits.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))))))) (Units.posSubgroup.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))))) (Subgroup.instMulActionSubtypeMemSubgroupInstMembershipInstSetLikeSubgroupToMonoidToMonoidToDivInvMonoidToSubmonoid.{u1, u2} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))))))) (Units.instGroupUnits.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))))))) M (Units.instMulActionUnitsToMonoidToDivInvMonoidInstGroupUnits.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1)))))) (MulActionWithZero.toMulAction.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))) (Units.posSubgroup.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1)))) v₂)) -> (SameRay.{u1, u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 v₁ v₂)
+<too large>
Case conversion may be inaccurate. Consider using '#align same_ray_of_mem_orbit sameRay_of_mem_orbitₓ'. -/
/-- `same_ray` follows from membership of `mul_action.orbit` for the `units.pos_subgroup`. -/
theorem sameRay_of_mem_orbit {v₁ v₂ : M} (h : v₁ ∈ MulAction.orbit (Units.posSubgroup R) v₂) :
@@ -858,10 +822,7 @@ theorem sameRay_of_mem_orbit {v₁ v₂ : M} (h : v₁ ∈ MulAction.orbit (Unit
#align same_ray_of_mem_orbit sameRay_of_mem_orbit
/- warning: units_inv_smul -> units_inv_smul is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] (u : Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (v : Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3), Eq.{succ u2} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SMul.smul.{u1, u2} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (MulAction.toHasSmul.{u1, u2} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (DivInvMonoid.toMonoid.{u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Group.toDivInvMonoid.{u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Units.group.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))) (Module.Ray.mulAction.{u1, u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Units.group.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Units.distribMulAction.{u1, u2} R M (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)) (Module.toDistribMulAction.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Units.smulCommClass_right.{u1, u1, u2} R R M (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) (smulCommClass_self.{u1, u2} R M (LinearOrderedCommRing.toCommMonoid.{u1} R _inst_1) (MulActionWithZero.toMulAction.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))))) (Inv.inv.{u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Units.hasInv.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) u) v) (SMul.smul.{u1, u2} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (MulAction.toHasSmul.{u1, u2} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (DivInvMonoid.toMonoid.{u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Group.toDivInvMonoid.{u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Units.group.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))) (Module.Ray.mulAction.{u1, u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Units.group.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Units.distribMulAction.{u1, u2} R M (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)) (Module.toDistribMulAction.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Units.smulCommClass_right.{u1, u1, u2} R R M (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) (smulCommClass_self.{u1, u2} R M (LinearOrderedCommRing.toCommMonoid.{u1} R _inst_1) (MulActionWithZero.toMulAction.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))))) u v)
-but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : LinearOrderedCommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] (u : Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (v : Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3), Eq.{succ u1} (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (HSMul.hSMul.{u2, u1, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (instHSMul.{u2, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (MulAction.toSMul.{u2, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (DivInvMonoid.toMonoid.{u2} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Group.toDivInvMonoid.{u2} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Units.instGroupUnits.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))))) (instMulActionRayToMonoidToDivInvMonoid.{u2, u1, u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Units.instGroupUnits.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Units.instDistribMulActionUnitsToMonoidToDivInvMonoidInstGroupUnits.{u2, u1} R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))))) (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)) (Module.toDistribMulAction.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)) (Units.smulCommClass_right.{u2, u2, u1} R R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))))) (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u2, u1} R M (AddZeroClass.toZero.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)))) (DistribSMul.toSMulZeroClass.{u2, u1} R M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (DistribMulAction.toDistribSMul.{u2, u1} R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))))) (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)) (Module.toDistribMulAction.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))) (smulCommClass_self.{u2, u1} R M (LinearOrderedCommRing.toCommMonoid.{u2} R _inst_1) (MulActionWithZero.toMulAction.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))))) (Inv.inv.{u2} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Units.instInv.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) u) v) (HSMul.hSMul.{u2, u1, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (instHSMul.{u2, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (MulAction.toSMul.{u2, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (DivInvMonoid.toMonoid.{u2} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Group.toDivInvMonoid.{u2} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Units.instGroupUnits.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))))) (instMulActionRayToMonoidToDivInvMonoid.{u2, u1, u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Units.instGroupUnits.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Units.instDistribMulActionUnitsToMonoidToDivInvMonoidInstGroupUnits.{u2, u1} R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))))) (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)) (Module.toDistribMulAction.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)) (Units.smulCommClass_right.{u2, u2, u1} R R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))))) (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u2, u1} R M (AddZeroClass.toZero.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)))) (DistribSMul.toSMulZeroClass.{u2, u1} R M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (DistribMulAction.toDistribSMul.{u2, u1} R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))))) (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)) (Module.toDistribMulAction.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))) (smulCommClass_self.{u2, u1} R M (LinearOrderedCommRing.toCommMonoid.{u2} R _inst_1) (MulActionWithZero.toMulAction.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))))) u v)
+<too large>
Case conversion may be inaccurate. Consider using '#align units_inv_smul units_inv_smulₓ'. -/
/-- Scaling by an inverse unit is the same as scaling by itself. -/
@[simp]
@@ -878,10 +839,7 @@ section
variable [NoZeroSMulDivisors R M]
/- warning: same_ray_smul_right_iff -> sameRay_smul_right_iff is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))] {v : M} {r : R}, Iff (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 v (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r v)) (Or (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))))))) r) (Eq.{succ u2} M v (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))))
-but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : LinearOrderedCommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))] {v : M} {r : R}, Iff (SameRay.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 v (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))) r v)) (Or (LE.le.{u2} R (Preorder.toLE.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))))) r) (Eq.{succ u1} M v (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2)))))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align same_ray_smul_right_iff sameRay_smul_right_iffₓ'. -/
@[simp]
theorem sameRay_smul_right_iff {v : M} {r : R} : SameRay R v (r • v) ↔ 0 ≤ r ∨ v = 0 :=
@@ -890,10 +848,7 @@ theorem sameRay_smul_right_iff {v : M} {r : R} : SameRay R v (r • v) ↔ 0 ≤
#align same_ray_smul_right_iff sameRay_smul_right_iff
/- warning: same_ray_smul_right_iff_of_ne -> sameRay_smul_right_iff_of_ne is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))] {v : M}, (Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (forall {r : R}, (Ne.{succ u1} R r (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))))))) -> (Iff (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 v (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r v)) (LT.lt.{u1} R (Preorder.toHasLt.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))))))) r)))
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))) (LinearOrderedRing.isDomain.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (SMulZeroClass.toSMul.{u1, u2} R M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))) (LinearOrderedRing.isDomain.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))] {v : M}, (Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2)))))))) -> (forall {r : R}, (Ne.{succ u1} R r (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))) (LinearOrderedRing.isDomain.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) -> (Iff (SameRay.{u1, u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 v (HSMul.hSMul.{u1, u2, u2} R M M (instHSMul.{u1, u2} R M (SMulZeroClass.toSMul.{u1, u2} R M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))) (LinearOrderedRing.isDomain.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) r v)) (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (StrictOrderedRing.toPartialOrder.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))) (LinearOrderedRing.isDomain.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))) r)))
+<too large>
Case conversion may be inaccurate. Consider using '#align same_ray_smul_right_iff_of_ne sameRay_smul_right_iff_of_neₓ'. -/
/-- A nonzero vector is in the same ray as a multiple of itself if and only if that multiple
is positive. -/
@@ -903,10 +858,7 @@ theorem sameRay_smul_right_iff_of_ne {v : M} (hv : v ≠ 0) {r : R} (hr : r ≠
#align same_ray_smul_right_iff_of_ne sameRay_smul_right_iff_of_ne
/- warning: same_ray_smul_left_iff -> sameRay_smul_left_iff is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))] {v : M} {r : R}, Iff (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r v) v) (Or (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))))))) r) (Eq.{succ u2} M v (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))))
-but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : LinearOrderedCommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))] {v : M} {r : R}, Iff (SameRay.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))) r v) v) (Or (LE.le.{u2} R (Preorder.toLE.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))))) r) (Eq.{succ u1} M v (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2)))))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align same_ray_smul_left_iff sameRay_smul_left_iffₓ'. -/
@[simp]
theorem sameRay_smul_left_iff {v : M} {r : R} : SameRay R (r • v) v ↔ 0 ≤ r ∨ v = 0 :=
@@ -914,10 +866,7 @@ theorem sameRay_smul_left_iff {v : M} {r : R} : SameRay R (r • v) v ↔ 0 ≤
#align same_ray_smul_left_iff sameRay_smul_left_iff
/- warning: same_ray_smul_left_iff_of_ne -> sameRay_smul_left_iff_of_ne is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))] {v : M}, (Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (forall {r : R}, (Ne.{succ u1} R r (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))))))) -> (Iff (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r v) v) (LT.lt.{u1} R (Preorder.toHasLt.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))))))) r)))
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))) (LinearOrderedRing.isDomain.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (SMulZeroClass.toSMul.{u1, u2} R M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))) (LinearOrderedRing.isDomain.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))] {v : M}, (Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2)))))))) -> (forall {r : R}, (Ne.{succ u1} R r (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))) (LinearOrderedRing.isDomain.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) -> (Iff (SameRay.{u1, u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (HSMul.hSMul.{u1, u2, u2} R M M (instHSMul.{u1, u2} R M (SMulZeroClass.toSMul.{u1, u2} R M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))) (LinearOrderedRing.isDomain.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) r v) v) (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (StrictOrderedRing.toPartialOrder.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))) (LinearOrderedRing.isDomain.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))) r)))
+<too large>
Case conversion may be inaccurate. Consider using '#align same_ray_smul_left_iff_of_ne sameRay_smul_left_iff_of_neₓ'. -/
/-- A multiple of a nonzero vector is in the same ray as that vector if and only if that multiple
is positive. -/
@@ -927,10 +876,7 @@ theorem sameRay_smul_left_iff_of_ne {v : M} (hv : v ≠ 0) {r : R} (hr : r ≠ 0
#align same_ray_smul_left_iff_of_ne sameRay_smul_left_iff_of_ne
/- warning: same_ray_neg_smul_right_iff -> sameRay_neg_smul_right_iff is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))] {v : M} {r : R}, Iff (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (Neg.neg.{u2} M (SubNegMonoid.toHasNeg.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))) v) (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r v)) (Or (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))) r (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))))))) (Eq.{succ u2} M v (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))))
-but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : LinearOrderedCommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))] {v : M} {r : R}, Iff (SameRay.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 (Neg.neg.{u1} M (NegZeroClass.toNeg.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) v) (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))) r v)) (Or (LE.le.{u2} R (Preorder.toLE.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) r (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1)))))))) (Eq.{succ u1} M v (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2)))))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align same_ray_neg_smul_right_iff sameRay_neg_smul_right_iffₓ'. -/
@[simp]
theorem sameRay_neg_smul_right_iff {v : M} {r : R} : SameRay R (-v) (r • v) ↔ r ≤ 0 ∨ v = 0 := by
@@ -938,10 +884,7 @@ theorem sameRay_neg_smul_right_iff {v : M} {r : R} : SameRay R (-v) (r • v)
#align same_ray_neg_smul_right_iff sameRay_neg_smul_right_iff
/- warning: same_ray_neg_smul_right_iff_of_ne -> sameRay_neg_smul_right_iff_of_ne is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))] {v : M} {r : R}, (Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (Ne.{succ u1} R r (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))))))) -> (Iff (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (Neg.neg.{u2} M (SubNegMonoid.toHasNeg.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))) v) (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r v)) (LT.lt.{u1} R (Preorder.toHasLt.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))) r (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))))))))
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))) (LinearOrderedRing.isDomain.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (SMulZeroClass.toSMul.{u1, u2} R M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))) (LinearOrderedRing.isDomain.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))] {v : M} {r : R}, (Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2)))))))) -> (Ne.{succ u1} R r (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))) (LinearOrderedRing.isDomain.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) -> (Iff (SameRay.{u1, u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (Neg.neg.{u2} M (NegZeroClass.toNeg.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) v) (HSMul.hSMul.{u1, u2, u2} R M M (instHSMul.{u1, u2} R M (SMulZeroClass.toSMul.{u1, u2} R M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))) (LinearOrderedRing.isDomain.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) r v)) (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (StrictOrderedRing.toPartialOrder.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) r (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))) (LinearOrderedRing.isDomain.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align same_ray_neg_smul_right_iff_of_ne sameRay_neg_smul_right_iff_of_neₓ'. -/
theorem sameRay_neg_smul_right_iff_of_ne {v : M} {r : R} (hv : v ≠ 0) (hr : r ≠ 0) :
SameRay R (-v) (r • v) ↔ r < 0 := by
@@ -949,10 +892,7 @@ theorem sameRay_neg_smul_right_iff_of_ne {v : M} {r : R} (hv : v ≠ 0) (hr : r
#align same_ray_neg_smul_right_iff_of_ne sameRay_neg_smul_right_iff_of_ne
/- warning: same_ray_neg_smul_left_iff -> sameRay_neg_smul_left_iff is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))] {v : M} {r : R}, Iff (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r v) (Neg.neg.{u2} M (SubNegMonoid.toHasNeg.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))) v)) (Or (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))) r (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))))))) (Eq.{succ u2} M v (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))))
-but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : LinearOrderedCommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))] {v : M} {r : R}, Iff (SameRay.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))) r v) (Neg.neg.{u1} M (NegZeroClass.toNeg.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) v)) (Or (LE.le.{u2} R (Preorder.toLE.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) r (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1)))))))) (Eq.{succ u1} M v (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2)))))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align same_ray_neg_smul_left_iff sameRay_neg_smul_left_iffₓ'. -/
@[simp]
theorem sameRay_neg_smul_left_iff {v : M} {r : R} : SameRay R (r • v) (-v) ↔ r ≤ 0 ∨ v = 0 :=
@@ -960,10 +900,7 @@ theorem sameRay_neg_smul_left_iff {v : M} {r : R} : SameRay R (r • v) (-v) ↔
#align same_ray_neg_smul_left_iff sameRay_neg_smul_left_iff
/- warning: same_ray_neg_smul_left_iff_of_ne -> sameRay_neg_smul_left_iff_of_ne is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))] {v : M} {r : R}, (Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (Ne.{succ u1} R r (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))))))) -> (Iff (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r v) (Neg.neg.{u2} M (SubNegMonoid.toHasNeg.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))) v)) (LT.lt.{u1} R (Preorder.toHasLt.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))) r (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))))))))
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))) (LinearOrderedRing.isDomain.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (SMulZeroClass.toSMul.{u1, u2} R M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))) (LinearOrderedRing.isDomain.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))] {v : M} {r : R}, (Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2)))))))) -> (Ne.{succ u1} R r (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))) (LinearOrderedRing.isDomain.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) -> (Iff (SameRay.{u1, u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (HSMul.hSMul.{u1, u2, u2} R M M (instHSMul.{u1, u2} R M (SMulZeroClass.toSMul.{u1, u2} R M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))) (LinearOrderedRing.isDomain.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) r v) (Neg.neg.{u2} M (NegZeroClass.toNeg.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) v)) (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (StrictOrderedRing.toPartialOrder.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) r (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))) (LinearOrderedRing.isDomain.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align same_ray_neg_smul_left_iff_of_ne sameRay_neg_smul_left_iff_of_neₓ'. -/
theorem sameRay_neg_smul_left_iff_of_ne {v : M} {r : R} (hv : v ≠ 0) (hr : r ≠ 0) :
SameRay R (r • v) (-v) ↔ r < 0 :=
@@ -971,10 +908,7 @@ theorem sameRay_neg_smul_left_iff_of_ne {v : M} {r : R} (hv : v ≠ 0) (hr : r
#align same_ray_neg_smul_left_iff_of_ne sameRay_neg_smul_left_iff_of_ne
/- warning: units_smul_eq_self_iff -> units_smul_eq_self_iff is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))] {u : Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))} {v : Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3}, Iff (Eq.{succ u2} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SMul.smul.{u1, u2} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (MulAction.toHasSmul.{u1, u2} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (DivInvMonoid.toMonoid.{u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Group.toDivInvMonoid.{u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Units.group.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))) (Module.Ray.mulAction.{u1, u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Units.group.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Units.distribMulAction.{u1, u2} R M (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)) (Module.toDistribMulAction.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Units.smulCommClass_right.{u1, u1, u2} R R M (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) (smulCommClass_self.{u1, u2} R M (LinearOrderedCommRing.toCommMonoid.{u1} R _inst_1) (MulActionWithZero.toMulAction.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))))) u v) v) (LT.lt.{u1} R (Preorder.toHasLt.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))))))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) R (HasLiftT.mk.{succ u1, succ u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) R (CoeTCₓ.coe.{succ u1, succ u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) R (coeBase.{succ u1, succ u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) R (Units.hasCoe.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) u))
-but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : LinearOrderedCommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))] {u : Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))} {v : Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3}, Iff (Eq.{succ u1} (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (HSMul.hSMul.{u2, u1, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (instHSMul.{u2, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (MulAction.toSMul.{u2, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (DivInvMonoid.toMonoid.{u2} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Group.toDivInvMonoid.{u2} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Units.instGroupUnits.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))))) (instMulActionRayToMonoidToDivInvMonoid.{u2, u1, u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Units.instGroupUnits.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Units.instDistribMulActionUnitsToMonoidToDivInvMonoidInstGroupUnits.{u2, u1} R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))))) (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)) (Module.toDistribMulAction.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)) (Units.smulCommClass_right.{u2, u2, u1} R R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))))) (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u2, u1} R M (AddZeroClass.toZero.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)))) (DistribSMul.toSMulZeroClass.{u2, u1} R M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (DistribMulAction.toDistribSMul.{u2, u1} R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))))) (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)) (Module.toDistribMulAction.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))) (smulCommClass_self.{u2, u1} R M (LinearOrderedCommRing.toCommMonoid.{u2} R _inst_1) (MulActionWithZero.toMulAction.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))))) u v) v) (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))))) (Units.val.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))))) u))
+<too large>
Case conversion may be inaccurate. Consider using '#align units_smul_eq_self_iff units_smul_eq_self_iffₓ'. -/
@[simp]
theorem units_smul_eq_self_iff {u : Rˣ} {v : Module.Ray R M} : u • v = v ↔ (0 : R) < u :=
@@ -984,10 +918,7 @@ theorem units_smul_eq_self_iff {u : Rˣ} {v : Module.Ray R M} : u • v = v ↔
#align units_smul_eq_self_iff units_smul_eq_self_iff
/- warning: units_smul_eq_neg_iff -> units_smul_eq_neg_iff is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))] {u : Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))} {v : Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3}, Iff (Eq.{succ u2} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SMul.smul.{u1, u2} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (MulAction.toHasSmul.{u1, u2} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (DivInvMonoid.toMonoid.{u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Group.toDivInvMonoid.{u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Units.group.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))) (Module.Ray.mulAction.{u1, u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Units.group.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Units.distribMulAction.{u1, u2} R M (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)) (Module.toDistribMulAction.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Units.smulCommClass_right.{u1, u1, u2} R R M (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) (smulCommClass_self.{u1, u2} R M (LinearOrderedCommRing.toCommMonoid.{u1} R _inst_1) (MulActionWithZero.toMulAction.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))))) u v) (Neg.neg.{u2} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Module.Ray.hasNeg.{u1, u2} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1) M _inst_2 _inst_3) v)) (LT.lt.{u1} R (Preorder.toHasLt.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) R (HasLiftT.mk.{succ u1, succ u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) R (CoeTCₓ.coe.{succ u1, succ u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) R (coeBase.{succ u1, succ u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) R (Units.hasCoe.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) u) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))))))))
-but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : LinearOrderedCommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))] {u : Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))} {v : Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3}, Iff (Eq.{succ u1} (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (HSMul.hSMul.{u2, u1, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (instHSMul.{u2, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (MulAction.toSMul.{u2, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (DivInvMonoid.toMonoid.{u2} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Group.toDivInvMonoid.{u2} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Units.instGroupUnits.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))))) (instMulActionRayToMonoidToDivInvMonoid.{u2, u1, u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Units.instGroupUnits.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Units.instDistribMulActionUnitsToMonoidToDivInvMonoidInstGroupUnits.{u2, u1} R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))))) (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)) (Module.toDistribMulAction.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)) (Units.smulCommClass_right.{u2, u2, u1} R R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))))) (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u2, u1} R M (AddZeroClass.toZero.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)))) (DistribSMul.toSMulZeroClass.{u2, u1} R M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (DistribMulAction.toDistribSMul.{u2, u1} R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))))) (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)) (Module.toDistribMulAction.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))) (smulCommClass_self.{u2, u1} R M (LinearOrderedCommRing.toCommMonoid.{u2} R _inst_1) (MulActionWithZero.toMulAction.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))))) u v) (Neg.neg.{u1} (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (instNegRayToStrictOrderedCommSemiringToAddCommMonoid.{u2, u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u2} R _inst_1) M _inst_2 _inst_3) v)) (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (Units.val.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))))) u) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align units_smul_eq_neg_iff units_smul_eq_neg_iffₓ'. -/
@[simp]
theorem units_smul_eq_neg_iff {u : Rˣ} {v : Module.Ray R M} : u • v = -v ↔ ↑u < (0 : R) := by
@@ -1071,10 +1002,7 @@ variable {R : Type _} [LinearOrderedField R]
variable {M : Type _} [AddCommGroup M] [Module R M] {x y v₁ v₂ : M}
/- warning: same_ray.exists_pos_left -> SameRay.exists_pos_left is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x y) -> (Ne.{succ u2} M x (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (Ne.{succ u2} M y (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (Exists.{succ u1} R (fun (r : R) => And (LT.lt.{u1} R (Preorder.toHasLt.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) r) (Eq.{succ u2} M (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r x) y)))
-but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : LinearOrderedField.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] {x : M} {y : M}, (SameRay.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 x y) -> (Ne.{succ u1} M x (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2)))))))) -> (Ne.{succ u1} M y (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2)))))))) -> (Exists.{succ u2} R (fun (r : R) => And (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R (LinearOrderedField.toLinearOrderedCommRing.{u2} R _inst_1)))))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))))) r) (Eq.{succ u1} M (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))) r x) y)))
+<too large>
Case conversion may be inaccurate. Consider using '#align same_ray.exists_pos_left SameRay.exists_pos_leftₓ'. -/
theorem exists_pos_left (h : SameRay R x y) (hx : x ≠ 0) (hy : y ≠ 0) :
∃ r : R, 0 < r ∧ r • x = y :=
@@ -1121,10 +1049,7 @@ theorem exists_nonneg_right (h : SameRay R x y) (hy : y ≠ 0) : ∃ r : R, 0
#align same_ray.exists_nonneg_right SameRay.exists_nonneg_right
/- warning: same_ray.exists_eq_smul_add -> SameRay.exists_eq_smul_add is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {v₁ : M} {v₂ : M}, (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 v₁ v₂) -> (Exists.{succ u1} R (fun (a : R) => Exists.{succ u1} R (fun (b : R) => And (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) a) (And (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) b) (And (Eq.{succ u1} R (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toHasAdd.{u1} R (Ring.toDistrib.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))) a b) (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) (And (Eq.{succ u2} M v₁ (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) a (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toHasAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))))) v₁ v₂))) (Eq.{succ u2} M v₂ (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) b (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toHasAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))))) v₁ v₂)))))))))
-but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : LinearOrderedField.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] {v₁ : M} {v₂ : M}, (SameRay.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 v₁ v₂) -> (Exists.{succ u2} R (fun (a : R) => Exists.{succ u2} R (fun (b : R) => And (LE.le.{u2} R (Preorder.toLE.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R (LinearOrderedField.toLinearOrderedCommRing.{u2} R _inst_1)))))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))))) a) (And (LE.le.{u2} R (Preorder.toLE.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R (LinearOrderedField.toLinearOrderedCommRing.{u2} R _inst_1)))))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))))) b) (And (Eq.{succ u2} R (HAdd.hAdd.{u2, u2, u2} R R R (instHAdd.{u2} R (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (DivisionRing.toRing.{u2} R (Field.toDivisionRing.{u2} R (LinearOrderedField.toField.{u2} R _inst_1))))))))) a b) (OfNat.ofNat.{u2} R 1 (One.toOfNat1.{u2} R (Semiring.toOne.{u2} R (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))))))) (And (Eq.{succ u1} M v₁ (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))) a (HAdd.hAdd.{u1, u1, u1} M M M (instHAdd.{u1} M (AddZeroClass.toAdd.{u1} M (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_2)))))) v₁ v₂))) (Eq.{succ u1} M v₂ (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))) b (HAdd.hAdd.{u1, u1, u1} M M M (instHAdd.{u1} M (AddZeroClass.toAdd.{u1} M (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_2)))))) v₁ v₂)))))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align same_ray.exists_eq_smul_add SameRay.exists_eq_smul_addₓ'. -/
/-- If vectors `v₁` and `v₂` are on the same ray, then for some nonnegative `a b`, `a + b = 1`, we
have `v₁ = a • (v₁ + v₂)` and `v₂ = b • (v₁ + v₂)`. -/
@@ -1145,10 +1070,7 @@ theorem exists_eq_smul_add (h : SameRay R v₁ v₂) :
#align same_ray.exists_eq_smul_add SameRay.exists_eq_smul_add
/- warning: same_ray.exists_eq_smul -> SameRay.exists_eq_smul is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {v₁ : M} {v₂ : M}, (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 v₁ v₂) -> (Exists.{succ u2} M (fun (u : M) => Exists.{succ u1} R (fun (a : R) => Exists.{succ u1} R (fun (b : R) => And (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) a) (And (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) b) (And (Eq.{succ u1} R (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toHasAdd.{u1} R (Ring.toDistrib.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))) a b) (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) (And (Eq.{succ u2} M v₁ (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) a u)) (Eq.{succ u2} M v₂ (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) b u)))))))))
-but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : LinearOrderedField.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] {v₁ : M} {v₂ : M}, (SameRay.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 v₁ v₂) -> (Exists.{succ u1} M (fun (u : M) => Exists.{succ u2} R (fun (a : R) => Exists.{succ u2} R (fun (b : R) => And (LE.le.{u2} R (Preorder.toLE.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R (LinearOrderedField.toLinearOrderedCommRing.{u2} R _inst_1)))))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))))) a) (And (LE.le.{u2} R (Preorder.toLE.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R (LinearOrderedField.toLinearOrderedCommRing.{u2} R _inst_1)))))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))))) b) (And (Eq.{succ u2} R (HAdd.hAdd.{u2, u2, u2} R R R (instHAdd.{u2} R (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (DivisionRing.toRing.{u2} R (Field.toDivisionRing.{u2} R (LinearOrderedField.toField.{u2} R _inst_1))))))))) a b) (OfNat.ofNat.{u2} R 1 (One.toOfNat1.{u2} R (Semiring.toOne.{u2} R (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))))))) (And (Eq.{succ u1} M v₁ (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))) a u)) (Eq.{succ u1} M v₂ (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))) b u)))))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align same_ray.exists_eq_smul SameRay.exists_eq_smulₓ'. -/
/-- If vectors `v₁` and `v₂` are on the same ray, then they are nonnegative multiples of the same
vector. Actually, this vector can be assumed to be `v₁ + v₂`, see `same_ray.exists_eq_smul_add`. -/
@@ -1166,10 +1088,7 @@ variable {R : Type _} [LinearOrderedField R]
variable {M : Type _} [AddCommGroup M] [Module R M] {x y : M}
/- warning: exists_pos_left_iff_same_ray -> exists_pos_left_iff_sameRay is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, (Ne.{succ u2} M x (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (Ne.{succ u2} M y (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (Iff (Exists.{succ u1} R (fun (r : R) => And (LT.lt.{u1} R (Preorder.toHasLt.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) r) (Eq.{succ u2} M (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r x) y))) (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x y))
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (DivisionSemiring.toSemiring.{u1} R (Semifield.toDivisionSemiring.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, (Ne.{succ u2} M x (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2)))))))) -> (Ne.{succ u2} M y (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2)))))))) -> (Iff (Exists.{succ u1} R (fun (r : R) => And (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (StrictOrderedRing.toPartialOrder.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)))))) (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CommGroupWithZero.toCommMonoidWithZero.{u1} R (Semifield.toCommGroupWithZero.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))))))) r) (Eq.{succ u2} M (HSMul.hSMul.{u1, u2, u2} R M M (instHSMul.{u1, u2} R M (SMulZeroClass.toSMul.{u1, u2} R M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CommGroupWithZero.toCommMonoidWithZero.{u1} R (Semifield.toCommGroupWithZero.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (DivisionSemiring.toSemiring.{u1} R (Semifield.toDivisionSemiring.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} R M (DivisionSemiring.toSemiring.{u1} R (Semifield.toDivisionSemiring.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) r x) y))) (SameRay.{u1, u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x y))
+<too large>
Case conversion may be inaccurate. Consider using '#align exists_pos_left_iff_same_ray exists_pos_left_iff_sameRayₓ'. -/
theorem exists_pos_left_iff_sameRay (hx : x ≠ 0) (hy : y ≠ 0) :
(∃ r : R, 0 < r ∧ r • x = y) ↔ SameRay R x y :=
@@ -1180,10 +1099,7 @@ theorem exists_pos_left_iff_sameRay (hx : x ≠ 0) (hy : y ≠ 0) :
#align exists_pos_left_iff_same_ray exists_pos_left_iff_sameRay
/- warning: exists_pos_left_iff_same_ray_and_ne_zero -> exists_pos_left_iff_sameRay_and_ne_zero is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, (Ne.{succ u2} M x (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (Iff (Exists.{succ u1} R (fun (r : R) => And (LT.lt.{u1} R (Preorder.toHasLt.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) r) (Eq.{succ u2} M (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r x) y))) (And (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x y) (Ne.{succ u2} M y (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))))))))))
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (DivisionSemiring.toSemiring.{u1} R (Semifield.toDivisionSemiring.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, (Ne.{succ u2} M x (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2)))))))) -> (Iff (Exists.{succ u1} R (fun (r : R) => And (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (StrictOrderedRing.toPartialOrder.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)))))) (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CommGroupWithZero.toCommMonoidWithZero.{u1} R (Semifield.toCommGroupWithZero.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))))))) r) (Eq.{succ u2} M (HSMul.hSMul.{u1, u2, u2} R M M (instHSMul.{u1, u2} R M (SMulZeroClass.toSMul.{u1, u2} R M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CommGroupWithZero.toCommMonoidWithZero.{u1} R (Semifield.toCommGroupWithZero.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (DivisionSemiring.toSemiring.{u1} R (Semifield.toDivisionSemiring.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} R M (DivisionSemiring.toSemiring.{u1} R (Semifield.toDivisionSemiring.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) r x) y))) (And (SameRay.{u1, u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x y) (Ne.{succ u2} M y (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align exists_pos_left_iff_same_ray_and_ne_zero exists_pos_left_iff_sameRay_and_ne_zeroₓ'. -/
theorem exists_pos_left_iff_sameRay_and_ne_zero (hx : x ≠ 0) :
(∃ r : R, 0 < r ∧ r • x = y) ↔ SameRay R x y ∧ y ≠ 0 :=
@@ -1196,10 +1112,7 @@ theorem exists_pos_left_iff_sameRay_and_ne_zero (hx : x ≠ 0) :
#align exists_pos_left_iff_same_ray_and_ne_zero exists_pos_left_iff_sameRay_and_ne_zero
/- warning: exists_nonneg_left_iff_same_ray -> exists_nonneg_left_iff_sameRay is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, (Ne.{succ u2} M x (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (Iff (Exists.{succ u1} R (fun (r : R) => And (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) r) (Eq.{succ u2} M (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r x) y))) (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x y))
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (DivisionSemiring.toSemiring.{u1} R (Semifield.toDivisionSemiring.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, (Ne.{succ u2} M x (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2)))))))) -> (Iff (Exists.{succ u1} R (fun (r : R) => And (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (StrictOrderedRing.toPartialOrder.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)))))) (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CommGroupWithZero.toCommMonoidWithZero.{u1} R (Semifield.toCommGroupWithZero.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))))))) r) (Eq.{succ u2} M (HSMul.hSMul.{u1, u2, u2} R M M (instHSMul.{u1, u2} R M (SMulZeroClass.toSMul.{u1, u2} R M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CommGroupWithZero.toCommMonoidWithZero.{u1} R (Semifield.toCommGroupWithZero.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (DivisionSemiring.toSemiring.{u1} R (Semifield.toDivisionSemiring.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} R M (DivisionSemiring.toSemiring.{u1} R (Semifield.toDivisionSemiring.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) r x) y))) (SameRay.{u1, u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x y))
+<too large>
Case conversion may be inaccurate. Consider using '#align exists_nonneg_left_iff_same_ray exists_nonneg_left_iff_sameRayₓ'. -/
theorem exists_nonneg_left_iff_sameRay (hx : x ≠ 0) :
(∃ r : R, 0 ≤ r ∧ r • x = y) ↔ SameRay R x y :=
@@ -1210,10 +1123,7 @@ theorem exists_nonneg_left_iff_sameRay (hx : x ≠ 0) :
#align exists_nonneg_left_iff_same_ray exists_nonneg_left_iff_sameRay
/- warning: exists_pos_right_iff_same_ray -> exists_pos_right_iff_sameRay is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, (Ne.{succ u2} M x (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (Ne.{succ u2} M y (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (Iff (Exists.{succ u1} R (fun (r : R) => And (LT.lt.{u1} R (Preorder.toHasLt.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) r) (Eq.{succ u2} M x (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r y)))) (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x y))
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (DivisionSemiring.toSemiring.{u1} R (Semifield.toDivisionSemiring.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, (Ne.{succ u2} M x (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2)))))))) -> (Ne.{succ u2} M y (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2)))))))) -> (Iff (Exists.{succ u1} R (fun (r : R) => And (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (StrictOrderedRing.toPartialOrder.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)))))) (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CommGroupWithZero.toCommMonoidWithZero.{u1} R (Semifield.toCommGroupWithZero.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))))))) r) (Eq.{succ u2} M x (HSMul.hSMul.{u1, u2, u2} R M M (instHSMul.{u1, u2} R M (SMulZeroClass.toSMul.{u1, u2} R M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CommGroupWithZero.toCommMonoidWithZero.{u1} R (Semifield.toCommGroupWithZero.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (DivisionSemiring.toSemiring.{u1} R (Semifield.toDivisionSemiring.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} R M (DivisionSemiring.toSemiring.{u1} R (Semifield.toDivisionSemiring.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) r y)))) (SameRay.{u1, u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x y))
+<too large>
Case conversion may be inaccurate. Consider using '#align exists_pos_right_iff_same_ray exists_pos_right_iff_sameRayₓ'. -/
theorem exists_pos_right_iff_sameRay (hx : x ≠ 0) (hy : y ≠ 0) :
(∃ r : R, 0 < r ∧ x = r • y) ↔ SameRay R x y := by
mathlib commit https://github.com/leanprover-community/mathlib/commit/8d33f09cd7089ecf074b4791907588245aec5d1b
@@ -275,7 +275,7 @@ theorem pos_smul_left {r : R} (h : SameRay R x y) (hr : 0 < r) : SameRay R (r
lean 3 declaration is
forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {N : Type.{u3}} [_inst_4 : AddCommMonoid.{u3} N] [_inst_5 : Module.{u1, u3} R N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_4] {x : M} {y : M} (f : LinearMap.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) M N _inst_2 _inst_4 _inst_3 _inst_5), (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x y) -> (SameRay.{u1, u3} R _inst_1 N _inst_4 _inst_5 (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) M N _inst_2 _inst_4 _inst_3 _inst_5) (fun (_x : LinearMap.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) M N _inst_2 _inst_4 _inst_3 _inst_5) => M -> N) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} R R M N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) f x) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) M N _inst_2 _inst_4 _inst_3 _inst_5) (fun (_x : LinearMap.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) M N _inst_2 _inst_4 _inst_3 _inst_5) => M -> N) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} R R M N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) f y))
but is expected to have type
- forall {R : Type.{u3}} [_inst_1 : StrictOrderedCommSemiring.{u3} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2] {N : Type.{u1}} [_inst_4 : AddCommMonoid.{u1} N] [_inst_5 : Module.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4] {x : M} {y : M} (f : LinearMap.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) M N _inst_2 _inst_4 _inst_3 _inst_5), (SameRay.{u3, u2} R _inst_1 M _inst_2 _inst_3 x y) -> (SameRay.{u3, u1} R _inst_1 ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => N) x) _inst_4 _inst_5 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) M N _inst_2 _inst_4 _inst_3 _inst_5) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => N) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} R R M N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))))) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) M N _inst_2 _inst_4 _inst_3 _inst_5) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => N) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} R R M N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))))) f y))
+ forall {R : Type.{u3}} [_inst_1 : StrictOrderedCommSemiring.{u3} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2] {N : Type.{u1}} [_inst_4 : AddCommMonoid.{u1} N] [_inst_5 : Module.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4] {x : M} {y : M} (f : LinearMap.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) M N _inst_2 _inst_4 _inst_3 _inst_5), (SameRay.{u3, u2} R _inst_1 M _inst_2 _inst_3 x y) -> (SameRay.{u3, u1} R _inst_1 ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => N) x) _inst_4 _inst_5 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) M N _inst_2 _inst_4 _inst_3 _inst_5) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => N) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} R R M N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))))) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) M N _inst_2 _inst_4 _inst_3 _inst_5) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => N) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} R R M N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))))) f y))
Case conversion may be inaccurate. Consider using '#align same_ray.map SameRay.mapₓ'. -/
/-- If two vectors are on the same ray then they remain so after applying a linear map. -/
theorem map (f : M →ₗ[R] N) (h : SameRay R x y) : SameRay R (f x) (f y) :=
@@ -288,7 +288,7 @@ theorem map (f : M →ₗ[R] N) (h : SameRay R x y) : SameRay R (f x) (f y) :=
lean 3 declaration is
forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {N : Type.{u3}} [_inst_4 : AddCommMonoid.{u3} N] [_inst_5 : Module.{u1, u3} R N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_4] {x : M} {y : M} {F : Type.{u4}} [_inst_7 : LinearMapClass.{u4, u1, u2, u3} F R M N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5] {f : F}, (Function.Injective.{succ u2, succ u3} M N (coeFn.{succ u4, max (succ u2) (succ u3)} F (fun (_x : F) => M -> N) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} F M (fun (_x : M) => N) (SMulHomClass.toFunLike.{u4, u1, u2, u3} F R M N (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (DistribSMul.toSmulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) (SMulZeroClass.toHasSmul.{u1, u3} R N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N (AddCommMonoid.toAddMonoid.{u3} N _inst_4))) (DistribSMul.toSmulZeroClass.{u1, u3} R N (AddMonoid.toAddZeroClass.{u3} N (AddCommMonoid.toAddMonoid.{u3} N _inst_4)) (DistribMulAction.toDistribSMul.{u1, u3} R N (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} N _inst_4) (Module.toDistribMulAction.{u1, u3} R N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_4 _inst_5)))) (DistribMulActionHomClass.toSmulHomClass.{u4, u1, u2, u3} F R M N (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (AddCommMonoid.toAddMonoid.{u3} N _inst_4) (Module.toDistribMulAction.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3) (Module.toDistribMulAction.{u1, u3} R N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_4 _inst_5) (SemilinearMapClass.distribMulActionHomClass.{u1, u2, u3, u4} R M N F (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 _inst_7)))) f)) -> (Iff (SameRay.{u1, u3} R _inst_1 N _inst_4 _inst_5 (coeFn.{succ u4, max (succ u2) (succ u3)} F (fun (_x : F) => M -> N) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} F M (fun (_x : M) => N) (SMulHomClass.toFunLike.{u4, u1, u2, u3} F R M N (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (DistribSMul.toSmulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) (SMulZeroClass.toHasSmul.{u1, u3} R N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N (AddCommMonoid.toAddMonoid.{u3} N _inst_4))) (DistribSMul.toSmulZeroClass.{u1, u3} R N (AddMonoid.toAddZeroClass.{u3} N (AddCommMonoid.toAddMonoid.{u3} N _inst_4)) (DistribMulAction.toDistribSMul.{u1, u3} R N (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} N _inst_4) (Module.toDistribMulAction.{u1, u3} R N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_4 _inst_5)))) (DistribMulActionHomClass.toSmulHomClass.{u4, u1, u2, u3} F R M N (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (AddCommMonoid.toAddMonoid.{u3} N _inst_4) (Module.toDistribMulAction.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3) (Module.toDistribMulAction.{u1, u3} R N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_4 _inst_5) (SemilinearMapClass.distribMulActionHomClass.{u1, u2, u3, u4} R M N F (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 _inst_7)))) f x) (coeFn.{succ u4, max (succ u2) (succ u3)} F (fun (_x : F) => M -> N) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} F M (fun (_x : M) => N) (SMulHomClass.toFunLike.{u4, u1, u2, u3} F R M N (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (DistribSMul.toSmulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) (SMulZeroClass.toHasSmul.{u1, u3} R N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N (AddCommMonoid.toAddMonoid.{u3} N _inst_4))) (DistribSMul.toSmulZeroClass.{u1, u3} R N (AddMonoid.toAddZeroClass.{u3} N (AddCommMonoid.toAddMonoid.{u3} N _inst_4)) (DistribMulAction.toDistribSMul.{u1, u3} R N (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} N _inst_4) (Module.toDistribMulAction.{u1, u3} R N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_4 _inst_5)))) (DistribMulActionHomClass.toSmulHomClass.{u4, u1, u2, u3} F R M N (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (AddCommMonoid.toAddMonoid.{u3} N _inst_4) (Module.toDistribMulAction.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3) (Module.toDistribMulAction.{u1, u3} R N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_4 _inst_5) (SemilinearMapClass.distribMulActionHomClass.{u1, u2, u3, u4} R M N F (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 _inst_7)))) f y)) (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x y))
but is expected to have type
- forall {R : Type.{u3}} [_inst_1 : StrictOrderedCommSemiring.{u3} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2] {N : Type.{u1}} [_inst_4 : AddCommMonoid.{u1} N] [_inst_5 : Module.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4] {x : M} {y : M} {F : Type.{u4}} [_inst_7 : LinearMapClass.{u4, u3, u2, u1} F R M N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5] {f : F}, (Function.Injective.{succ u2, succ u1} M N (FunLike.coe.{succ u4, succ u2, succ u1} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M) => N) _x) (SMulHomClass.toFunLike.{u4, u3, u2, u1} F R M N (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u3, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u3, u2} R M (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_3)))) (SMulZeroClass.toSMul.{u3, u1} R N (AddMonoid.toZero.{u1} N (AddCommMonoid.toAddMonoid.{u1} N _inst_4)) (DistribSMul.toSMulZeroClass.{u3, u1} R N (AddMonoid.toAddZeroClass.{u1} N (AddCommMonoid.toAddMonoid.{u1} N _inst_4)) (DistribMulAction.toDistribSMul.{u3, u1} R N (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} N _inst_4) (Module.toDistribMulAction.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4 _inst_5)))) (DistribMulActionHomClass.toSMulHomClass.{u4, u3, u2, u1} F R M N (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (AddCommMonoid.toAddMonoid.{u1} N _inst_4) (Module.toDistribMulAction.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_3) (Module.toDistribMulAction.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4 _inst_5) (SemilinearMapClass.distribMulActionHomClass.{u3, u2, u1, u4} R M N F (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 _inst_7))) f)) -> (Iff (SameRay.{u3, u1} R _inst_1 ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M) => N) x) _inst_4 _inst_5 (FunLike.coe.{succ u4, succ u2, succ u1} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M) => N) _x) (SMulHomClass.toFunLike.{u4, u3, u2, u1} F R M N (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u3, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u3, u2} R M (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_3)))) (SMulZeroClass.toSMul.{u3, u1} R N (AddMonoid.toZero.{u1} N (AddCommMonoid.toAddMonoid.{u1} N _inst_4)) (DistribSMul.toSMulZeroClass.{u3, u1} R N (AddMonoid.toAddZeroClass.{u1} N (AddCommMonoid.toAddMonoid.{u1} N _inst_4)) (DistribMulAction.toDistribSMul.{u3, u1} R N (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} N _inst_4) (Module.toDistribMulAction.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4 _inst_5)))) (DistribMulActionHomClass.toSMulHomClass.{u4, u3, u2, u1} F R M N (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (AddCommMonoid.toAddMonoid.{u1} N _inst_4) (Module.toDistribMulAction.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_3) (Module.toDistribMulAction.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4 _inst_5) (SemilinearMapClass.distribMulActionHomClass.{u3, u2, u1, u4} R M N F (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 _inst_7))) f x) (FunLike.coe.{succ u4, succ u2, succ u1} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M) => N) _x) (SMulHomClass.toFunLike.{u4, u3, u2, u1} F R M N (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u3, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u3, u2} R M (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_3)))) (SMulZeroClass.toSMul.{u3, u1} R N (AddMonoid.toZero.{u1} N (AddCommMonoid.toAddMonoid.{u1} N _inst_4)) (DistribSMul.toSMulZeroClass.{u3, u1} R N (AddMonoid.toAddZeroClass.{u1} N (AddCommMonoid.toAddMonoid.{u1} N _inst_4)) (DistribMulAction.toDistribSMul.{u3, u1} R N (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} N _inst_4) (Module.toDistribMulAction.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4 _inst_5)))) (DistribMulActionHomClass.toSMulHomClass.{u4, u3, u2, u1} F R M N (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (AddCommMonoid.toAddMonoid.{u1} N _inst_4) (Module.toDistribMulAction.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_3) (Module.toDistribMulAction.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4 _inst_5) (SemilinearMapClass.distribMulActionHomClass.{u3, u2, u1, u4} R M N F (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 _inst_7))) f y)) (SameRay.{u3, u2} R _inst_1 M _inst_2 _inst_3 x y))
+ forall {R : Type.{u3}} [_inst_1 : StrictOrderedCommSemiring.{u3} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2] {N : Type.{u1}} [_inst_4 : AddCommMonoid.{u1} N] [_inst_5 : Module.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4] {x : M} {y : M} {F : Type.{u4}} [_inst_7 : LinearMapClass.{u4, u3, u2, u1} F R M N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5] {f : F}, (Function.Injective.{succ u2, succ u1} M N (FunLike.coe.{succ u4, succ u2, succ u1} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M) => N) _x) (SMulHomClass.toFunLike.{u4, u3, u2, u1} F R M N (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u3, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u3, u2} R M (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_3)))) (SMulZeroClass.toSMul.{u3, u1} R N (AddMonoid.toZero.{u1} N (AddCommMonoid.toAddMonoid.{u1} N _inst_4)) (DistribSMul.toSMulZeroClass.{u3, u1} R N (AddMonoid.toAddZeroClass.{u1} N (AddCommMonoid.toAddMonoid.{u1} N _inst_4)) (DistribMulAction.toDistribSMul.{u3, u1} R N (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} N _inst_4) (Module.toDistribMulAction.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4 _inst_5)))) (DistribMulActionHomClass.toSMulHomClass.{u4, u3, u2, u1} F R M N (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (AddCommMonoid.toAddMonoid.{u1} N _inst_4) (Module.toDistribMulAction.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_3) (Module.toDistribMulAction.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4 _inst_5) (SemilinearMapClass.distribMulActionHomClass.{u3, u2, u1, u4} R M N F (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 _inst_7))) f)) -> (Iff (SameRay.{u3, u1} R _inst_1 ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M) => N) x) _inst_4 _inst_5 (FunLike.coe.{succ u4, succ u2, succ u1} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M) => N) _x) (SMulHomClass.toFunLike.{u4, u3, u2, u1} F R M N (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u3, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u3, u2} R M (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_3)))) (SMulZeroClass.toSMul.{u3, u1} R N (AddMonoid.toZero.{u1} N (AddCommMonoid.toAddMonoid.{u1} N _inst_4)) (DistribSMul.toSMulZeroClass.{u3, u1} R N (AddMonoid.toAddZeroClass.{u1} N (AddCommMonoid.toAddMonoid.{u1} N _inst_4)) (DistribMulAction.toDistribSMul.{u3, u1} R N (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} N _inst_4) (Module.toDistribMulAction.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4 _inst_5)))) (DistribMulActionHomClass.toSMulHomClass.{u4, u3, u2, u1} F R M N (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (AddCommMonoid.toAddMonoid.{u1} N _inst_4) (Module.toDistribMulAction.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_3) (Module.toDistribMulAction.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4 _inst_5) (SemilinearMapClass.distribMulActionHomClass.{u3, u2, u1, u4} R M N F (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 _inst_7))) f x) (FunLike.coe.{succ u4, succ u2, succ u1} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M) => N) _x) (SMulHomClass.toFunLike.{u4, u3, u2, u1} F R M N (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u3, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u3, u2} R M (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_3)))) (SMulZeroClass.toSMul.{u3, u1} R N (AddMonoid.toZero.{u1} N (AddCommMonoid.toAddMonoid.{u1} N _inst_4)) (DistribSMul.toSMulZeroClass.{u3, u1} R N (AddMonoid.toAddZeroClass.{u1} N (AddCommMonoid.toAddMonoid.{u1} N _inst_4)) (DistribMulAction.toDistribSMul.{u3, u1} R N (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} N _inst_4) (Module.toDistribMulAction.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4 _inst_5)))) (DistribMulActionHomClass.toSMulHomClass.{u4, u3, u2, u1} F R M N (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (AddCommMonoid.toAddMonoid.{u1} N _inst_4) (Module.toDistribMulAction.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_3) (Module.toDistribMulAction.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4 _inst_5) (SemilinearMapClass.distribMulActionHomClass.{u3, u2, u1, u4} R M N F (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 _inst_7))) f y)) (SameRay.{u3, u2} R _inst_1 M _inst_2 _inst_3 x y))
Case conversion may be inaccurate. Consider using '#align function.injective.same_ray_map_iff Function.Injective.sameRay_map_iffₓ'. -/
/-- The images of two vectors under an injective linear map are on the same ray if and only if the
original vectors are on the same ray. -/
@@ -301,7 +301,7 @@ theorem Function.Injective.sameRay_map_iff {F : Type _} [LinearMapClass F R M N]
lean 3 declaration is
forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {N : Type.{u3}} [_inst_4 : AddCommMonoid.{u3} N] [_inst_5 : Module.{u1, u3} R N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_4] {x : M} {y : M} (e : LinearEquiv.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5), Iff (SameRay.{u1, u3} R _inst_1 N _inst_4 _inst_5 (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearEquiv.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) (fun (_x : LinearEquiv.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) => M -> N) (LinearEquiv.hasCoeToFun.{u1, u1, u2, u3} R R M N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) e x) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearEquiv.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) (fun (_x : LinearEquiv.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) => M -> N) (LinearEquiv.hasCoeToFun.{u1, u1, u2, u3} R R M N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) e y)) (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x y)
but is expected to have type
- forall {R : Type.{u3}} [_inst_1 : StrictOrderedCommSemiring.{u3} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2] {N : Type.{u1}} [_inst_4 : AddCommMonoid.{u1} N] [_inst_5 : Module.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4] {x : M} {y : M} (e : LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5), Iff (SameRay.{u3, u1} R _inst_1 ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M) => N) x) _inst_4 _inst_5 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M) => N) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) R M N (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u3, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u3, u2} R M (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_3)))) (SMulZeroClass.toSMul.{u3, u1} R N (AddMonoid.toZero.{u1} N (AddCommMonoid.toAddMonoid.{u1} N _inst_4)) (DistribSMul.toSMulZeroClass.{u3, u1} R N (AddMonoid.toAddZeroClass.{u1} N (AddCommMonoid.toAddMonoid.{u1} N _inst_4)) (DistribMulAction.toDistribSMul.{u3, u1} R N (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} N _inst_4) (Module.toDistribMulAction.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4 _inst_5)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) R M N (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (AddCommMonoid.toAddMonoid.{u1} N _inst_4) (Module.toDistribMulAction.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_3) (Module.toDistribMulAction.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4 _inst_5) (SemilinearMapClass.distribMulActionHomClass.{u3, u2, u1, max u2 u1} R M N (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (SemilinearEquivClass.instSemilinearMapClass.{u3, u3, u2, u1, max u2 u1} R R M N (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u3, u3, u2, u1} R R M N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))))))) e x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M) => N) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) R M N (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u3, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u3, u2} R M (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_3)))) (SMulZeroClass.toSMul.{u3, u1} R N (AddMonoid.toZero.{u1} N (AddCommMonoid.toAddMonoid.{u1} N _inst_4)) (DistribSMul.toSMulZeroClass.{u3, u1} R N (AddMonoid.toAddZeroClass.{u1} N (AddCommMonoid.toAddMonoid.{u1} N _inst_4)) (DistribMulAction.toDistribSMul.{u3, u1} R N (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} N _inst_4) (Module.toDistribMulAction.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4 _inst_5)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) R M N (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (AddCommMonoid.toAddMonoid.{u1} N _inst_4) (Module.toDistribMulAction.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_3) (Module.toDistribMulAction.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4 _inst_5) (SemilinearMapClass.distribMulActionHomClass.{u3, u2, u1, max u2 u1} R M N (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (SemilinearEquivClass.instSemilinearMapClass.{u3, u3, u2, u1, max u2 u1} R R M N (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u3, u3, u2, u1} R R M N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))))))) e y)) (SameRay.{u3, u2} R _inst_1 M _inst_2 _inst_3 x y)
+ forall {R : Type.{u3}} [_inst_1 : StrictOrderedCommSemiring.{u3} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2] {N : Type.{u1}} [_inst_4 : AddCommMonoid.{u1} N] [_inst_5 : Module.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4] {x : M} {y : M} (e : LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5), Iff (SameRay.{u3, u1} R _inst_1 ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M) => N) x) _inst_4 _inst_5 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M) => N) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) R M N (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u3, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u3, u2} R M (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_3)))) (SMulZeroClass.toSMul.{u3, u1} R N (AddMonoid.toZero.{u1} N (AddCommMonoid.toAddMonoid.{u1} N _inst_4)) (DistribSMul.toSMulZeroClass.{u3, u1} R N (AddMonoid.toAddZeroClass.{u1} N (AddCommMonoid.toAddMonoid.{u1} N _inst_4)) (DistribMulAction.toDistribSMul.{u3, u1} R N (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} N _inst_4) (Module.toDistribMulAction.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4 _inst_5)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) R M N (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (AddCommMonoid.toAddMonoid.{u1} N _inst_4) (Module.toDistribMulAction.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_3) (Module.toDistribMulAction.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4 _inst_5) (SemilinearMapClass.distribMulActionHomClass.{u3, u2, u1, max u2 u1} R M N (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (SemilinearEquivClass.instSemilinearMapClass.{u3, u3, u2, u1, max u2 u1} R R M N (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u3, u3, u2, u1} R R M N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))))))) e x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M) => N) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) R M N (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u3, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u3, u2} R M (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_3)))) (SMulZeroClass.toSMul.{u3, u1} R N (AddMonoid.toZero.{u1} N (AddCommMonoid.toAddMonoid.{u1} N _inst_4)) (DistribSMul.toSMulZeroClass.{u3, u1} R N (AddMonoid.toAddZeroClass.{u1} N (AddCommMonoid.toAddMonoid.{u1} N _inst_4)) (DistribMulAction.toDistribSMul.{u3, u1} R N (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} N _inst_4) (Module.toDistribMulAction.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4 _inst_5)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) R M N (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (AddCommMonoid.toAddMonoid.{u1} N _inst_4) (Module.toDistribMulAction.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_3) (Module.toDistribMulAction.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4 _inst_5) (SemilinearMapClass.distribMulActionHomClass.{u3, u2, u1, max u2 u1} R M N (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (SemilinearEquivClass.instSemilinearMapClass.{u3, u3, u2, u1, max u2 u1} R R M N (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u3, u3, u2, u1} R R M N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))))))) e y)) (SameRay.{u3, u2} R _inst_1 M _inst_2 _inst_3 x y)
Case conversion may be inaccurate. Consider using '#align same_ray_map_iff SameRay.sameRay_map_iffₓ'. -/
/-- The images of two vectors under a linear equivalence are on the same ray if and only if the
original vectors are on the same ray. -/
@@ -489,7 +489,7 @@ def Module.Ray.map (e : M ≃ₗ[R] N) : Module.Ray R M ≃ Module.Ray R N :=
lean 3 declaration is
forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {N : Type.{u3}} [_inst_4 : AddCommMonoid.{u3} N] [_inst_5 : Module.{u1, u3} R N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_4] (e : LinearEquiv.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) (v : M) (hv : Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))), Eq.{succ u3} (Module.Ray.{u1, u3} R _inst_1 N _inst_4 _inst_5) (coeFn.{max 1 (max (succ u2) (succ u3)) (succ u3) (succ u2), max (succ u2) (succ u3)} (Equiv.{succ u2, succ u3} (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u1, u3} R _inst_1 N _inst_4 _inst_5)) (fun (_x : Equiv.{succ u2, succ u3} (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u1, u3} R _inst_1 N _inst_4 _inst_5)) => (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) -> (Module.Ray.{u1, u3} R _inst_1 N _inst_4 _inst_5)) (Equiv.hasCoeToFun.{succ u2, succ u3} (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u1, u3} R _inst_1 N _inst_4 _inst_5)) (Module.Ray.map.{u1, u2, u3} R _inst_1 M _inst_2 _inst_3 N _inst_4 _inst_5 e) (rayOfNeZero.{u1, u2} R _inst_1 M _inst_2 _inst_3 v hv)) (rayOfNeZero.{u1, u3} R _inst_1 N _inst_4 _inst_5 (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearEquiv.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) (fun (_x : LinearEquiv.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) => M -> N) (LinearEquiv.hasCoeToFun.{u1, u1, u2, u3} R R M N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) e v) (Iff.mpr (Ne.{succ u3} N (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearEquiv.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) (fun (_x : LinearEquiv.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) => M -> N) (LinearEquiv.hasCoeToFun.{u1, u1, u2, u3} R R M N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) e v) (OfNat.ofNat.{u3} N 0 (OfNat.mk.{u3} N 0 (Zero.zero.{u3} N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N (AddCommMonoid.toAddMonoid.{u3} N _inst_4))))))) (Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))) (LinearEquiv.map_ne_zero_iff.{u1, u1, u2, u3} R R M N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) e v) hv))
but is expected to have type
- forall {R : Type.{u3}} [_inst_1 : StrictOrderedCommSemiring.{u3} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2] {N : Type.{u1}} [_inst_4 : AddCommMonoid.{u1} N] [_inst_5 : Module.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4] (e : LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) (v : M) (hv : Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))), Eq.{succ u1} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Module.Ray.{u3, u2} R _inst_1 M _inst_2 _inst_3) => Module.Ray.{u3, u1} R _inst_1 N _inst_4 _inst_5) (rayOfNeZero.{u3, u2} R _inst_1 M _inst_2 _inst_3 v hv)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Equiv.{succ u2, succ u1} (Module.Ray.{u3, u2} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u3, u1} R _inst_1 N _inst_4 _inst_5)) (Module.Ray.{u3, u2} R _inst_1 M _inst_2 _inst_3) (fun (_x : Module.Ray.{u3, u2} R _inst_1 M _inst_2 _inst_3) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Module.Ray.{u3, u2} R _inst_1 M _inst_2 _inst_3) => Module.Ray.{u3, u1} R _inst_1 N _inst_4 _inst_5) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} (Module.Ray.{u3, u2} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u3, u1} R _inst_1 N _inst_4 _inst_5)) (Module.Ray.map.{u3, u2, u1} R _inst_1 M _inst_2 _inst_3 N _inst_4 _inst_5 e) (rayOfNeZero.{u3, u2} R _inst_1 M _inst_2 _inst_3 v hv)) (rayOfNeZero.{u3, u1} R _inst_1 ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M) => N) v) _inst_4 _inst_5 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M) => N) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) R M N (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u3, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u3, u2} R M (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_3)))) (SMulZeroClass.toSMul.{u3, u1} R N (AddMonoid.toZero.{u1} N (AddCommMonoid.toAddMonoid.{u1} N _inst_4)) (DistribSMul.toSMulZeroClass.{u3, u1} R N (AddMonoid.toAddZeroClass.{u1} N (AddCommMonoid.toAddMonoid.{u1} N _inst_4)) (DistribMulAction.toDistribSMul.{u3, u1} R N (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} N _inst_4) (Module.toDistribMulAction.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4 _inst_5)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) R M N (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (AddCommMonoid.toAddMonoid.{u1} N _inst_4) (Module.toDistribMulAction.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_3) (Module.toDistribMulAction.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4 _inst_5) (SemilinearMapClass.distribMulActionHomClass.{u3, u2, u1, max u2 u1} R M N (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (SemilinearEquivClass.instSemilinearMapClass.{u3, u3, u2, u1, max u2 u1} R R M N (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u3, u3, u2, u1} R R M N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))))))) e v) (Iff.mpr (Ne.{succ u1} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : M) => N) v) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) M (fun (_x : M) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : M) => N) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) M N (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) M N (AddEquivClass.toEquivLike.{max u2 u1, u2, u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) M N (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (AddZeroClass.toAdd.{u1} N (AddMonoid.toAddZeroClass.{u1} N (AddCommMonoid.toAddMonoid.{u1} N _inst_4))) (SemilinearEquivClass.toAddEquivClass.{max u2 u1, u3, u3, u2, u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5 (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u3, u3, u2, u1} R R M N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))))))) e v) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : M) => N) v) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : M) => N) v) (AddMonoid.toZero.{u1} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : M) => N) v) (AddCommMonoid.toAddMonoid.{u1} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : M) => N) v) _inst_4))))) (Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))) (LinearEquiv.map_ne_zero_iff.{u3, u3, u2, u1} R R M N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) e v) hv))
+ forall {R : Type.{u3}} [_inst_1 : StrictOrderedCommSemiring.{u3} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2] {N : Type.{u1}} [_inst_4 : AddCommMonoid.{u1} N] [_inst_5 : Module.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4] (e : LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) (v : M) (hv : Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))), Eq.{succ u1} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Module.Ray.{u3, u2} R _inst_1 M _inst_2 _inst_3) => Module.Ray.{u3, u1} R _inst_1 N _inst_4 _inst_5) (rayOfNeZero.{u3, u2} R _inst_1 M _inst_2 _inst_3 v hv)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Equiv.{succ u2, succ u1} (Module.Ray.{u3, u2} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u3, u1} R _inst_1 N _inst_4 _inst_5)) (Module.Ray.{u3, u2} R _inst_1 M _inst_2 _inst_3) (fun (_x : Module.Ray.{u3, u2} R _inst_1 M _inst_2 _inst_3) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Module.Ray.{u3, u2} R _inst_1 M _inst_2 _inst_3) => Module.Ray.{u3, u1} R _inst_1 N _inst_4 _inst_5) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} (Module.Ray.{u3, u2} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u3, u1} R _inst_1 N _inst_4 _inst_5)) (Module.Ray.map.{u3, u2, u1} R _inst_1 M _inst_2 _inst_3 N _inst_4 _inst_5 e) (rayOfNeZero.{u3, u2} R _inst_1 M _inst_2 _inst_3 v hv)) (rayOfNeZero.{u3, u1} R _inst_1 ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M) => N) v) _inst_4 _inst_5 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M) => N) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) R M N (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u3, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u3, u2} R M (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_3)))) (SMulZeroClass.toSMul.{u3, u1} R N (AddMonoid.toZero.{u1} N (AddCommMonoid.toAddMonoid.{u1} N _inst_4)) (DistribSMul.toSMulZeroClass.{u3, u1} R N (AddMonoid.toAddZeroClass.{u1} N (AddCommMonoid.toAddMonoid.{u1} N _inst_4)) (DistribMulAction.toDistribSMul.{u3, u1} R N (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} N _inst_4) (Module.toDistribMulAction.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4 _inst_5)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) R M N (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (AddCommMonoid.toAddMonoid.{u1} N _inst_4) (Module.toDistribMulAction.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_3) (Module.toDistribMulAction.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4 _inst_5) (SemilinearMapClass.distribMulActionHomClass.{u3, u2, u1, max u2 u1} R M N (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (SemilinearEquivClass.instSemilinearMapClass.{u3, u3, u2, u1, max u2 u1} R R M N (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u3, u3, u2, u1} R R M N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))))))) e v) (Iff.mpr (Ne.{succ u1} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : M) => N) v) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) M (fun (_x : M) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : M) => N) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) M N (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) M N (AddEquivClass.toEquivLike.{max u2 u1, u2, u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) M N (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (AddZeroClass.toAdd.{u1} N (AddMonoid.toAddZeroClass.{u1} N (AddCommMonoid.toAddMonoid.{u1} N _inst_4))) (SemilinearEquivClass.toAddEquivClass.{max u2 u1, u3, u3, u2, u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5 (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u3, u3, u2, u1} R R M N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))))))) e v) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : M) => N) v) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : M) => N) v) (AddMonoid.toZero.{u1} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : M) => N) v) (AddCommMonoid.toAddMonoid.{u1} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : M) => N) v) _inst_4))))) (Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))) (LinearEquiv.map_ne_zero_iff.{u3, u3, u2, u1} R R M N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) e v) hv))
Case conversion may be inaccurate. Consider using '#align module.ray.map_apply Module.Ray.map_applyₓ'. -/
@[simp]
theorem Module.Ray.map_apply (e : M ≃ₗ[R] N) (v : M) (hv : v ≠ 0) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/95a87616d63b3cb49d3fe678d416fbe9c4217bf4
@@ -489,7 +489,7 @@ def Module.Ray.map (e : M ≃ₗ[R] N) : Module.Ray R M ≃ Module.Ray R N :=
lean 3 declaration is
forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {N : Type.{u3}} [_inst_4 : AddCommMonoid.{u3} N] [_inst_5 : Module.{u1, u3} R N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_4] (e : LinearEquiv.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) (v : M) (hv : Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))), Eq.{succ u3} (Module.Ray.{u1, u3} R _inst_1 N _inst_4 _inst_5) (coeFn.{max 1 (max (succ u2) (succ u3)) (succ u3) (succ u2), max (succ u2) (succ u3)} (Equiv.{succ u2, succ u3} (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u1, u3} R _inst_1 N _inst_4 _inst_5)) (fun (_x : Equiv.{succ u2, succ u3} (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u1, u3} R _inst_1 N _inst_4 _inst_5)) => (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) -> (Module.Ray.{u1, u3} R _inst_1 N _inst_4 _inst_5)) (Equiv.hasCoeToFun.{succ u2, succ u3} (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u1, u3} R _inst_1 N _inst_4 _inst_5)) (Module.Ray.map.{u1, u2, u3} R _inst_1 M _inst_2 _inst_3 N _inst_4 _inst_5 e) (rayOfNeZero.{u1, u2} R _inst_1 M _inst_2 _inst_3 v hv)) (rayOfNeZero.{u1, u3} R _inst_1 N _inst_4 _inst_5 (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearEquiv.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) (fun (_x : LinearEquiv.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) => M -> N) (LinearEquiv.hasCoeToFun.{u1, u1, u2, u3} R R M N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) e v) (Iff.mpr (Ne.{succ u3} N (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearEquiv.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) (fun (_x : LinearEquiv.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) => M -> N) (LinearEquiv.hasCoeToFun.{u1, u1, u2, u3} R R M N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) e v) (OfNat.ofNat.{u3} N 0 (OfNat.mk.{u3} N 0 (Zero.zero.{u3} N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N (AddCommMonoid.toAddMonoid.{u3} N _inst_4))))))) (Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))) (LinearEquiv.map_ne_zero_iff.{u1, u1, u2, u3} R R M N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) e v) hv))
but is expected to have type
- forall {R : Type.{u3}} [_inst_1 : StrictOrderedCommSemiring.{u3} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2] {N : Type.{u1}} [_inst_4 : AddCommMonoid.{u1} N] [_inst_5 : Module.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4] (e : LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) (v : M) (hv : Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))), Eq.{succ u1} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Module.Ray.{u3, u2} R _inst_1 M _inst_2 _inst_3) => Module.Ray.{u3, u1} R _inst_1 N _inst_4 _inst_5) (rayOfNeZero.{u3, u2} R _inst_1 M _inst_2 _inst_3 v hv)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Equiv.{succ u2, succ u1} (Module.Ray.{u3, u2} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u3, u1} R _inst_1 N _inst_4 _inst_5)) (Module.Ray.{u3, u2} R _inst_1 M _inst_2 _inst_3) (fun (_x : Module.Ray.{u3, u2} R _inst_1 M _inst_2 _inst_3) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Module.Ray.{u3, u2} R _inst_1 M _inst_2 _inst_3) => Module.Ray.{u3, u1} R _inst_1 N _inst_4 _inst_5) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} (Module.Ray.{u3, u2} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u3, u1} R _inst_1 N _inst_4 _inst_5)) (Module.Ray.map.{u3, u2, u1} R _inst_1 M _inst_2 _inst_3 N _inst_4 _inst_5 e) (rayOfNeZero.{u3, u2} R _inst_1 M _inst_2 _inst_3 v hv)) (rayOfNeZero.{u3, u1} R _inst_1 ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M) => N) v) _inst_4 _inst_5 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M) => N) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) R M N (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u3, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u3, u2} R M (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_3)))) (SMulZeroClass.toSMul.{u3, u1} R N (AddMonoid.toZero.{u1} N (AddCommMonoid.toAddMonoid.{u1} N _inst_4)) (DistribSMul.toSMulZeroClass.{u3, u1} R N (AddMonoid.toAddZeroClass.{u1} N (AddCommMonoid.toAddMonoid.{u1} N _inst_4)) (DistribMulAction.toDistribSMul.{u3, u1} R N (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} N _inst_4) (Module.toDistribMulAction.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4 _inst_5)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) R M N (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (AddCommMonoid.toAddMonoid.{u1} N _inst_4) (Module.toDistribMulAction.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_3) (Module.toDistribMulAction.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4 _inst_5) (SemilinearMapClass.distribMulActionHomClass.{u3, u2, u1, max u2 u1} R M N (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (SemilinearEquivClass.instSemilinearMapClass.{u3, u3, u2, u1, max u2 u1} R R M N (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u3, u3, u2, u1} R R M N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))))))) e v) (Iff.mpr (Ne.{succ u1} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : M) => N) v) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) M (fun (_x : M) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : M) => N) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) M N (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) M N (AddEquivClass.toEquivLike.{max u2 u1, u2, u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) M N (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (AddZeroClass.toAdd.{u1} N (AddMonoid.toAddZeroClass.{u1} N (AddCommMonoid.toAddMonoid.{u1} N _inst_4))) (SemilinearEquivClass.toAddEquivClass.{max u2 u1, u3, u3, u2, u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5 (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u3, u3, u2, u1} R R M N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))))))) e v) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : M) => N) v) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : M) => N) v) (AddMonoid.toZero.{u1} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : M) => N) v) (AddCommMonoid.toAddMonoid.{u1} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : M) => N) v) _inst_4))))) (Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))) (LinearEquiv.map_ne_zero_iff.{u3, u3, u2, u1} R R M N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) e v) hv))
+ forall {R : Type.{u3}} [_inst_1 : StrictOrderedCommSemiring.{u3} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2] {N : Type.{u1}} [_inst_4 : AddCommMonoid.{u1} N] [_inst_5 : Module.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4] (e : LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) (v : M) (hv : Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))), Eq.{succ u1} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Module.Ray.{u3, u2} R _inst_1 M _inst_2 _inst_3) => Module.Ray.{u3, u1} R _inst_1 N _inst_4 _inst_5) (rayOfNeZero.{u3, u2} R _inst_1 M _inst_2 _inst_3 v hv)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Equiv.{succ u2, succ u1} (Module.Ray.{u3, u2} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u3, u1} R _inst_1 N _inst_4 _inst_5)) (Module.Ray.{u3, u2} R _inst_1 M _inst_2 _inst_3) (fun (_x : Module.Ray.{u3, u2} R _inst_1 M _inst_2 _inst_3) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Module.Ray.{u3, u2} R _inst_1 M _inst_2 _inst_3) => Module.Ray.{u3, u1} R _inst_1 N _inst_4 _inst_5) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} (Module.Ray.{u3, u2} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u3, u1} R _inst_1 N _inst_4 _inst_5)) (Module.Ray.map.{u3, u2, u1} R _inst_1 M _inst_2 _inst_3 N _inst_4 _inst_5 e) (rayOfNeZero.{u3, u2} R _inst_1 M _inst_2 _inst_3 v hv)) (rayOfNeZero.{u3, u1} R _inst_1 ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M) => N) v) _inst_4 _inst_5 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M) => N) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) R M N (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u3, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u3, u2} R M (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_3)))) (SMulZeroClass.toSMul.{u3, u1} R N (AddMonoid.toZero.{u1} N (AddCommMonoid.toAddMonoid.{u1} N _inst_4)) (DistribSMul.toSMulZeroClass.{u3, u1} R N (AddMonoid.toAddZeroClass.{u1} N (AddCommMonoid.toAddMonoid.{u1} N _inst_4)) (DistribMulAction.toDistribSMul.{u3, u1} R N (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} N _inst_4) (Module.toDistribMulAction.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4 _inst_5)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) R M N (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (AddCommMonoid.toAddMonoid.{u1} N _inst_4) (Module.toDistribMulAction.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_3) (Module.toDistribMulAction.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4 _inst_5) (SemilinearMapClass.distribMulActionHomClass.{u3, u2, u1, max u2 u1} R M N (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (SemilinearEquivClass.instSemilinearMapClass.{u3, u3, u2, u1, max u2 u1} R R M N (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u3, u3, u2, u1} R R M N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))))))) e v) (Iff.mpr (Ne.{succ u1} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : M) => N) v) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) M (fun (_x : M) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : M) => N) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) M N (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) M N (AddEquivClass.toEquivLike.{max u2 u1, u2, u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) M N (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (AddZeroClass.toAdd.{u1} N (AddMonoid.toAddZeroClass.{u1} N (AddCommMonoid.toAddMonoid.{u1} N _inst_4))) (SemilinearEquivClass.toAddEquivClass.{max u2 u1, u3, u3, u2, u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5 (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u3, u3, u2, u1} R R M N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))))))) e v) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : M) => N) v) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : M) => N) v) (AddMonoid.toZero.{u1} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : M) => N) v) (AddCommMonoid.toAddMonoid.{u1} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : M) => N) v) _inst_4))))) (Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))) (LinearEquiv.map_ne_zero_iff.{u3, u3, u2, u1} R R M N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) e v) hv))
Case conversion may be inaccurate. Consider using '#align module.ray.map_apply Module.Ray.map_applyₓ'. -/
@[simp]
theorem Module.Ray.map_apply (e : M ≃ₗ[R] N) (v : M) (hv : v ≠ 0) :
@@ -541,7 +541,7 @@ instance : MulAction G (Module.Ray R M)
lean 3 declaration is
forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] (e : LinearEquiv.{u1, u1, u2, u2} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (v : Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3), Eq.{succ u2} (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (SMul.smul.{u2, u2} (LinearEquiv.{u1, u1, u2, u2} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (MulAction.toHasSmul.{u2, u2} (LinearEquiv.{u1, u1, u2, u2} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (DivInvMonoid.toMonoid.{u2} (LinearEquiv.{u1, u1, u2, u2} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (Group.toDivInvMonoid.{u2} (LinearEquiv.{u1, u1, u2, u2} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (LinearEquiv.automorphismGroup.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3))) (Module.Ray.mulAction.{u1, u2, u2} R _inst_1 M _inst_2 _inst_3 (LinearEquiv.{u1, u1, u2, u2} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (LinearEquiv.automorphismGroup.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3) (LinearEquiv.applyDistribMulAction.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3) (LinearEquiv.apply_smulCommClass.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3))) e v) (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3)) (fun (_x : Equiv.{succ u2, succ u2} (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3)) => (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) -> (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3)) (Equiv.hasCoeToFun.{succ u2, succ u2} (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3)) (Module.Ray.map.{u1, u2, u2} R _inst_1 M _inst_2 _inst_3 M _inst_2 _inst_3 e) v)
but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] (e : LinearEquiv.{u2, u2, u1, u1} R R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (v : Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3), Eq.{succ u1} (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (HSMul.hSMul.{u1, u1, u1} (LinearEquiv.{u2, u2, u1, u1} R R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (instHSMul.{u1, u1} (LinearEquiv.{u2, u2, u1, u1} R R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (MulAction.toSMul.{u1, u1} (LinearEquiv.{u2, u2, u1, u1} R R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (DivInvMonoid.toMonoid.{u1} (LinearEquiv.{u2, u2, u1, u1} R R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (Group.toDivInvMonoid.{u1} (LinearEquiv.{u2, u2, u1, u1} R R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (LinearEquiv.automorphismGroup.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3))) (instMulActionRayToMonoidToDivInvMonoid.{u2, u1, u1} R _inst_1 M _inst_2 _inst_3 (LinearEquiv.{u2, u2, u1, u1} R R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (LinearEquiv.automorphismGroup.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3) (LinearEquiv.applyDistribMulAction.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3) (LinearEquiv.apply_smulCommClass.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3)))) e v) (FunLike.coe.{succ u1, succ u1, succ u1} (Equiv.{succ u1, succ u1} (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3)) (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (fun (_x : Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) => Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u1} (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3)) (Module.Ray.map.{u2, u1, u1} R _inst_1 M _inst_2 _inst_3 M _inst_2 _inst_3 e) v)
+ forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] (e : LinearEquiv.{u2, u2, u1, u1} R R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (v : Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3), Eq.{succ u1} (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (HSMul.hSMul.{u1, u1, u1} (LinearEquiv.{u2, u2, u1, u1} R R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (instHSMul.{u1, u1} (LinearEquiv.{u2, u2, u1, u1} R R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (MulAction.toSMul.{u1, u1} (LinearEquiv.{u2, u2, u1, u1} R R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (DivInvMonoid.toMonoid.{u1} (LinearEquiv.{u2, u2, u1, u1} R R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (Group.toDivInvMonoid.{u1} (LinearEquiv.{u2, u2, u1, u1} R R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (LinearEquiv.automorphismGroup.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3))) (instMulActionRayToMonoidToDivInvMonoid.{u2, u1, u1} R _inst_1 M _inst_2 _inst_3 (LinearEquiv.{u2, u2, u1, u1} R R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (LinearEquiv.automorphismGroup.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3) (LinearEquiv.applyDistribMulAction.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3) (LinearEquiv.apply_smulCommClass.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3)))) e v) (FunLike.coe.{succ u1, succ u1, succ u1} (Equiv.{succ u1, succ u1} (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3)) (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (fun (_x : Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) => Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u1} (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3)) (Module.Ray.map.{u2, u1, u1} R _inst_1 M _inst_2 _inst_3 M _inst_2 _inst_3 e) v)
Case conversion may be inaccurate. Consider using '#align module.ray.linear_equiv_smul_eq_map Module.Ray.linearEquiv_smul_eq_mapₓ'. -/
/-- The action via `linear_equiv.apply_distrib_mul_action` corresponds to `module.ray.map`. -/
@[simp]
@@ -824,7 +824,7 @@ theorem units_smul_of_neg (u : Rˣ) (hu : (u : R) < 0) (v : Module.Ray R M) : u
lean 3 declaration is
forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u1} R] {M : Type.{u2}} {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : AddCommGroup.{u3} N] [_inst_4 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u3} N _inst_3)] (f : LinearEquiv.{u1, u1, u2, u3} R R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_3) _inst_4 _inst_5) (v : Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4), Eq.{succ u3} (Module.Ray.{u1, u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u3} N _inst_3) _inst_5) (coeFn.{max 1 (max (succ u2) (succ u3)) (succ u3) (succ u2), max (succ u2) (succ u3)} (Equiv.{succ u2, succ u3} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Module.Ray.{u1, u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u3} N _inst_3) _inst_5)) (fun (_x : Equiv.{succ u2, succ u3} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Module.Ray.{u1, u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u3} N _inst_3) _inst_5)) => (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) -> (Module.Ray.{u1, u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u3} N _inst_3) _inst_5)) (Equiv.hasCoeToFun.{succ u2, succ u3} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Module.Ray.{u1, u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u3} N _inst_3) _inst_5)) (Module.Ray.map.{u1, u2, u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4 N (AddCommGroup.toAddCommMonoid.{u3} N _inst_3) _inst_5 f) (Neg.neg.{u2} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Module.Ray.hasNeg.{u1, u2} R _inst_1 M _inst_2 _inst_4) v)) (Neg.neg.{u3} (Module.Ray.{u1, u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u3} N _inst_3) _inst_5) (Module.Ray.hasNeg.{u1, u3} R _inst_1 N _inst_3 _inst_5) (coeFn.{max 1 (max (succ u2) (succ u3)) (succ u3) (succ u2), max (succ u2) (succ u3)} (Equiv.{succ u2, succ u3} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Module.Ray.{u1, u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u3} N _inst_3) _inst_5)) (fun (_x : Equiv.{succ u2, succ u3} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Module.Ray.{u1, u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u3} N _inst_3) _inst_5)) => (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) -> (Module.Ray.{u1, u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u3} N _inst_3) _inst_5)) (Equiv.hasCoeToFun.{succ u2, succ u3} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Module.Ray.{u1, u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u3} N _inst_3) _inst_5)) (Module.Ray.map.{u1, u2, u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4 N (AddCommGroup.toAddCommMonoid.{u3} N _inst_3) _inst_5 f) v))
but is expected to have type
- forall {R : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u3} R] {M : Type.{u2}} {N : Type.{u1}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : AddCommGroup.{u1} N] [_inst_4 : Module.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_5 : Module.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} N _inst_3)] (f : LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1)))) M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_4 _inst_5) (v : Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4), Eq.{succ u1} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) => Module.Ray.{u3, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_5) (Neg.neg.{u2} (Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (instNegRayToStrictOrderedCommSemiringToAddCommMonoid.{u3, u2} R _inst_1 M _inst_2 _inst_4) v)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Equiv.{succ u2, succ u1} (Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Module.Ray.{u3, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_5)) (Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (fun (_x : Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) => Module.Ray.{u3, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_5) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} (Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Module.Ray.{u3, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_5)) (Module.Ray.map.{u3, u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4 N (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_5 f) (Neg.neg.{u2} (Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (instNegRayToStrictOrderedCommSemiringToAddCommMonoid.{u3, u2} R _inst_1 M _inst_2 _inst_4) v)) (Neg.neg.{u1} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) => Module.Ray.{u3, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_5) v) (instNegRayToStrictOrderedCommSemiringToAddCommMonoid.{u3, u1} R _inst_1 N _inst_3 _inst_5) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Equiv.{succ u2, succ u1} (Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Module.Ray.{u3, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_5)) (Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (fun (_x : Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) => Module.Ray.{u3, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_5) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} (Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Module.Ray.{u3, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_5)) (Module.Ray.map.{u3, u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4 N (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_5 f) v))
+ forall {R : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u3} R] {M : Type.{u2}} {N : Type.{u1}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : AddCommGroup.{u1} N] [_inst_4 : Module.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_5 : Module.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} N _inst_3)] (f : LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1)))) M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_4 _inst_5) (v : Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4), Eq.{succ u1} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) => Module.Ray.{u3, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_5) (Neg.neg.{u2} (Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (instNegRayToStrictOrderedCommSemiringToAddCommMonoid.{u3, u2} R _inst_1 M _inst_2 _inst_4) v)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Equiv.{succ u2, succ u1} (Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Module.Ray.{u3, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_5)) (Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (fun (_x : Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) => Module.Ray.{u3, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_5) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} (Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Module.Ray.{u3, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_5)) (Module.Ray.map.{u3, u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4 N (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_5 f) (Neg.neg.{u2} (Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (instNegRayToStrictOrderedCommSemiringToAddCommMonoid.{u3, u2} R _inst_1 M _inst_2 _inst_4) v)) (Neg.neg.{u1} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) => Module.Ray.{u3, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_5) v) (instNegRayToStrictOrderedCommSemiringToAddCommMonoid.{u3, u1} R _inst_1 N _inst_3 _inst_5) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Equiv.{succ u2, succ u1} (Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Module.Ray.{u3, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_5)) (Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (fun (_x : Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) => Module.Ray.{u3, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_5) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} (Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Module.Ray.{u3, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_5)) (Module.Ray.map.{u3, u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4 N (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_5 f) v))
Case conversion may be inaccurate. Consider using '#align module.ray.map_neg Module.Ray.map_negₓ'. -/
@[simp]
protected theorem map_neg (f : M ≃ₗ[R] N) (v : Module.Ray R M) : map f (-v) = -map f v :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/c89fe2d59ae06402c3f55f978016d1ada444f57e
@@ -275,7 +275,7 @@ theorem pos_smul_left {r : R} (h : SameRay R x y) (hr : 0 < r) : SameRay R (r
lean 3 declaration is
forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {N : Type.{u3}} [_inst_4 : AddCommMonoid.{u3} N] [_inst_5 : Module.{u1, u3} R N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_4] {x : M} {y : M} (f : LinearMap.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) M N _inst_2 _inst_4 _inst_3 _inst_5), (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x y) -> (SameRay.{u1, u3} R _inst_1 N _inst_4 _inst_5 (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) M N _inst_2 _inst_4 _inst_3 _inst_5) (fun (_x : LinearMap.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) M N _inst_2 _inst_4 _inst_3 _inst_5) => M -> N) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} R R M N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) f x) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) M N _inst_2 _inst_4 _inst_3 _inst_5) (fun (_x : LinearMap.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) M N _inst_2 _inst_4 _inst_3 _inst_5) => M -> N) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} R R M N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) f y))
but is expected to have type
- forall {R : Type.{u3}} [_inst_1 : StrictOrderedCommSemiring.{u3} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2] {N : Type.{u1}} [_inst_4 : AddCommMonoid.{u1} N] [_inst_5 : Module.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4] {x : M} {y : M} (f : LinearMap.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) M N _inst_2 _inst_4 _inst_3 _inst_5), (SameRay.{u3, u2} R _inst_1 M _inst_2 _inst_3 x y) -> (SameRay.{u3, u1} R _inst_1 ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => N) x) _inst_4 _inst_5 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) M N _inst_2 _inst_4 _inst_3 _inst_5) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => N) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} R R M N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))))) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) M N _inst_2 _inst_4 _inst_3 _inst_5) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => N) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} R R M N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))))) f y))
+ forall {R : Type.{u3}} [_inst_1 : StrictOrderedCommSemiring.{u3} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2] {N : Type.{u1}} [_inst_4 : AddCommMonoid.{u1} N] [_inst_5 : Module.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4] {x : M} {y : M} (f : LinearMap.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) M N _inst_2 _inst_4 _inst_3 _inst_5), (SameRay.{u3, u2} R _inst_1 M _inst_2 _inst_3 x y) -> (SameRay.{u3, u1} R _inst_1 ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => N) x) _inst_4 _inst_5 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) M N _inst_2 _inst_4 _inst_3 _inst_5) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => N) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} R R M N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))))) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) M N _inst_2 _inst_4 _inst_3 _inst_5) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => N) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} R R M N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))))) f y))
Case conversion may be inaccurate. Consider using '#align same_ray.map SameRay.mapₓ'. -/
/-- If two vectors are on the same ray then they remain so after applying a linear map. -/
theorem map (f : M →ₗ[R] N) (h : SameRay R x y) : SameRay R (f x) (f y) :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/0b9eaaa7686280fad8cce467f5c3c57ee6ce77f8
@@ -138,7 +138,7 @@ theorem symm (h : SameRay R x y) : SameRay R y x :=
/- warning: same_ray.exists_pos -> SameRay.exists_pos is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {x : M} {y : M}, (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x y) -> (Ne.{succ u2} M x (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))) -> (Ne.{succ u2} M y (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))) -> (Exists.{succ u1} R (fun (r₁ : R) => Exists.{succ u1} R (fun (r₂ : R) => And (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedCancelAddCommMonoid.toPartialOrder.{u1} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))))))) r₁) (And (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedCancelAddCommMonoid.toPartialOrder.{u1} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))))))) r₂) (Eq.{succ u2} M (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) r₁ x) (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) r₂ y))))))
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {x : M} {y : M}, (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x y) -> (Ne.{succ u2} M x (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))) -> (Ne.{succ u2} M y (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))) -> (Exists.{succ u1} R (fun (r₁ : R) => Exists.{succ u1} R (fun (r₂ : R) => And (LT.lt.{u1} R (Preorder.toHasLt.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedCancelAddCommMonoid.toPartialOrder.{u1} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))))))) r₁) (And (LT.lt.{u1} R (Preorder.toHasLt.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedCancelAddCommMonoid.toPartialOrder.{u1} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))))))) r₂) (Eq.{succ u2} M (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) r₁ x) (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) r₂ y))))))
but is expected to have type
forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] {x : M} {y : M}, (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 x y) -> (Ne.{succ u1} M x (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2))))) -> (Ne.{succ u1} M y (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2))))) -> (Exists.{succ u2} R (fun (r₁ : R) => Exists.{succ u2} R (fun (r₂ : R) => And (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedSemiring.toPartialOrder.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))))) r₁) (And (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedSemiring.toPartialOrder.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))))) r₂) (Eq.{succ u1} M (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3))))) r₁ x) (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3))))) r₂ y))))))
Case conversion may be inaccurate. Consider using '#align same_ray.exists_pos SameRay.exists_posₓ'. -/
@@ -181,7 +181,7 @@ theorem trans (hxy : SameRay R x y) (hyz : SameRay R y z) (hy : y = 0 → x = 0
/- warning: same_ray_nonneg_smul_right -> SameRay.sameRay_nonneg_smul_right is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] (v : M) {r : R}, (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedCancelAddCommMonoid.toPartialOrder.{u1} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))))))) r) -> (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 v (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) r v))
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] (v : M) {r : R}, (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedCancelAddCommMonoid.toPartialOrder.{u1} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))))))) r) -> (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 v (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) r v))
but is expected to have type
forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] (v : M) {r : R}, (LE.le.{u2} R (Preorder.toLE.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedSemiring.toPartialOrder.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))))) r) -> (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 v (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3))))) r v))
Case conversion may be inaccurate. Consider using '#align same_ray_nonneg_smul_right SameRay.sameRay_nonneg_smul_rightₓ'. -/
@@ -196,7 +196,7 @@ theorem SameRay.sameRay_nonneg_smul_right (v : M) {r : R} (h : 0 ≤ r) : SameRa
/- warning: same_ray_pos_smul_right -> SameRay.sameRay_pos_smul_right is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] (v : M) {r : R}, (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedCancelAddCommMonoid.toPartialOrder.{u1} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))))))) r) -> (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 v (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) r v))
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] (v : M) {r : R}, (LT.lt.{u1} R (Preorder.toHasLt.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedCancelAddCommMonoid.toPartialOrder.{u1} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))))))) r) -> (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 v (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) r v))
but is expected to have type
forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] (v : M) {r : R}, (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedSemiring.toPartialOrder.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))))) r) -> (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 v (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3))))) r v))
Case conversion may be inaccurate. Consider using '#align same_ray_pos_smul_right SameRay.sameRay_pos_smul_rightₓ'. -/
@@ -207,7 +207,7 @@ theorem SameRay.sameRay_pos_smul_right (v : M) {r : R} (h : 0 < r) : SameRay R v
/- warning: same_ray.nonneg_smul_right -> SameRay.nonneg_smul_right is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {x : M} {y : M} {r : R}, (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x y) -> (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedCancelAddCommMonoid.toPartialOrder.{u1} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))))))) r) -> (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) r y))
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {x : M} {y : M} {r : R}, (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x y) -> (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedCancelAddCommMonoid.toPartialOrder.{u1} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))))))) r) -> (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) r y))
but is expected to have type
forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] {x : M} {y : M} {r : R}, (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 x y) -> (LE.le.{u2} R (Preorder.toLE.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedSemiring.toPartialOrder.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))))) r) -> (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 x (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3))))) r y))
Case conversion may be inaccurate. Consider using '#align same_ray.nonneg_smul_right SameRay.nonneg_smul_rightₓ'. -/
@@ -218,7 +218,7 @@ theorem nonneg_smul_right {r : R} (h : SameRay R x y) (hr : 0 ≤ r) : SameRay R
/- warning: same_ray.pos_smul_right -> SameRay.pos_smul_right is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {x : M} {y : M} {r : R}, (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x y) -> (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedCancelAddCommMonoid.toPartialOrder.{u1} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))))))) r) -> (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) r y))
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {x : M} {y : M} {r : R}, (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x y) -> (LT.lt.{u1} R (Preorder.toHasLt.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedCancelAddCommMonoid.toPartialOrder.{u1} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))))))) r) -> (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) r y))
but is expected to have type
forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] {x : M} {y : M} {r : R}, (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 x y) -> (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedSemiring.toPartialOrder.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))))) r) -> (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 x (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3))))) r y))
Case conversion may be inaccurate. Consider using '#align same_ray.pos_smul_right SameRay.pos_smul_rightₓ'. -/
@@ -229,7 +229,7 @@ theorem pos_smul_right {r : R} (h : SameRay R x y) (hr : 0 < r) : SameRay R x (r
/- warning: same_ray_nonneg_smul_left -> SameRay.sameRay_nonneg_smul_left is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] (v : M) {r : R}, (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedCancelAddCommMonoid.toPartialOrder.{u1} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))))))) r) -> (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) r v) v)
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] (v : M) {r : R}, (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedCancelAddCommMonoid.toPartialOrder.{u1} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))))))) r) -> (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) r v) v)
but is expected to have type
forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] (v : M) {r : R}, (LE.le.{u2} R (Preorder.toLE.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedSemiring.toPartialOrder.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))))) r) -> (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3))))) r v) v)
Case conversion may be inaccurate. Consider using '#align same_ray_nonneg_smul_left SameRay.sameRay_nonneg_smul_leftₓ'. -/
@@ -240,7 +240,7 @@ theorem SameRay.sameRay_nonneg_smul_left (v : M) {r : R} (h : 0 ≤ r) : SameRay
/- warning: same_ray_pos_smul_left -> SameRay.sameRay_pos_smul_left is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] (v : M) {r : R}, (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedCancelAddCommMonoid.toPartialOrder.{u1} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))))))) r) -> (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) r v) v)
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] (v : M) {r : R}, (LT.lt.{u1} R (Preorder.toHasLt.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedCancelAddCommMonoid.toPartialOrder.{u1} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))))))) r) -> (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) r v) v)
but is expected to have type
forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] (v : M) {r : R}, (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedSemiring.toPartialOrder.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))))) r) -> (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3))))) r v) v)
Case conversion may be inaccurate. Consider using '#align same_ray_pos_smul_left SameRay.sameRay_pos_smul_leftₓ'. -/
@@ -251,7 +251,7 @@ theorem SameRay.sameRay_pos_smul_left (v : M) {r : R} (h : 0 < r) : SameRay R (r
/- warning: same_ray.nonneg_smul_left -> SameRay.nonneg_smul_left is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {x : M} {y : M} {r : R}, (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x y) -> (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedCancelAddCommMonoid.toPartialOrder.{u1} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))))))) r) -> (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) r x) y)
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {x : M} {y : M} {r : R}, (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x y) -> (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedCancelAddCommMonoid.toPartialOrder.{u1} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))))))) r) -> (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) r x) y)
but is expected to have type
forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] {x : M} {y : M} {r : R}, (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 x y) -> (LE.le.{u2} R (Preorder.toLE.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedSemiring.toPartialOrder.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))))) r) -> (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3))))) r x) y)
Case conversion may be inaccurate. Consider using '#align same_ray.nonneg_smul_left SameRay.nonneg_smul_leftₓ'. -/
@@ -262,7 +262,7 @@ theorem nonneg_smul_left {r : R} (h : SameRay R x y) (hr : 0 ≤ r) : SameRay R
/- warning: same_ray.pos_smul_left -> SameRay.pos_smul_left is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {x : M} {y : M} {r : R}, (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x y) -> (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedCancelAddCommMonoid.toPartialOrder.{u1} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))))))) r) -> (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) r x) y)
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {x : M} {y : M} {r : R}, (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x y) -> (LT.lt.{u1} R (Preorder.toHasLt.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedCancelAddCommMonoid.toPartialOrder.{u1} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))))))) r) -> (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) r x) y)
but is expected to have type
forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] {x : M} {y : M} {r : R}, (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 x y) -> (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedSemiring.toPartialOrder.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))))) r) -> (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3))))) r x) y)
Case conversion may be inaccurate. Consider using '#align same_ray.pos_smul_left SameRay.pos_smul_leftₓ'. -/
@@ -455,7 +455,7 @@ theorem ray_eq_iff {v₁ v₂ : M} (hv₁ : v₁ ≠ 0) (hv₂ : v₂ ≠ 0) :
/- warning: ray_pos_smul -> ray_pos_smul is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {v : M} (h : Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))) {r : R}, (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedCancelAddCommMonoid.toPartialOrder.{u1} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))))))) r) -> (forall (hrv : Ne.{succ u2} M (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) r v) (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))), Eq.{succ u2} (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (rayOfNeZero.{u1, u2} R _inst_1 M _inst_2 _inst_3 (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) r v) hrv) (rayOfNeZero.{u1, u2} R _inst_1 M _inst_2 _inst_3 v h))
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {v : M} (h : Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))) {r : R}, (LT.lt.{u1} R (Preorder.toHasLt.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedCancelAddCommMonoid.toPartialOrder.{u1} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))))))) r) -> (forall (hrv : Ne.{succ u2} M (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) r v) (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))), Eq.{succ u2} (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (rayOfNeZero.{u1, u2} R _inst_1 M _inst_2 _inst_3 (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) r v) hrv) (rayOfNeZero.{u1, u2} R _inst_1 M _inst_2 _inst_3 v h))
but is expected to have type
forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {v : M} (h : Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))) {r : R}, (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (StrictOrderedSemiring.toPartialOrder.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CommSemiring.toCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R _inst_1))))) r) -> (forall (hrv : Ne.{succ u2} M (HSMul.hSMul.{u1, u2, u2} R M M (instHSMul.{u1, u2} R M (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CommSemiring.toCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R _inst_1))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3))))) r v) (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))), Eq.{succ u2} (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (rayOfNeZero.{u1, u2} R _inst_1 M _inst_2 _inst_3 (HSMul.hSMul.{u1, u2, u2} R M M (instHSMul.{u1, u2} R M (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CommSemiring.toCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R _inst_1))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3))))) r v) hrv) (rayOfNeZero.{u1, u2} R _inst_1 M _inst_2 _inst_3 v h))
Case conversion may be inaccurate. Consider using '#align ray_pos_smul ray_pos_smulₓ'. -/
@@ -568,7 +568,7 @@ namespace Module.Ray
/- warning: module.ray.units_smul_of_pos -> Module.Ray.units_smul_of_pos is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] (u : Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))), (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedCancelAddCommMonoid.toPartialOrder.{u1} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))))))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) R (HasLiftT.mk.{succ u1, succ u1} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) R (CoeTCₓ.coe.{succ u1, succ u1} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) R (coeBase.{succ u1, succ u1} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) R (Units.hasCoe.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))))) u)) -> (forall (v : Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3), Eq.{succ u2} (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (SMul.smul.{u1, u2} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (MulAction.toHasSmul.{u1, u2} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (DivInvMonoid.toMonoid.{u1} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (Group.toDivInvMonoid.{u1} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (Units.group.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))))) (Module.Ray.mulAction.{u1, u2, u1} R _inst_1 M _inst_2 _inst_3 (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (Units.group.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (Units.distribMulAction.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)) (Units.smulCommClass_right.{u1, u1, u2} R R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) (smulCommClass_self.{u1, u2} R M (CommSemiring.toCommMonoid.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R _inst_1)) (MulActionWithZero.toMulAction.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))))) u v) v)
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] (u : Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))), (LT.lt.{u1} R (Preorder.toHasLt.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedCancelAddCommMonoid.toPartialOrder.{u1} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))))))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) R (HasLiftT.mk.{succ u1, succ u1} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) R (CoeTCₓ.coe.{succ u1, succ u1} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) R (coeBase.{succ u1, succ u1} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) R (Units.hasCoe.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))))) u)) -> (forall (v : Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3), Eq.{succ u2} (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (SMul.smul.{u1, u2} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (MulAction.toHasSmul.{u1, u2} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (DivInvMonoid.toMonoid.{u1} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (Group.toDivInvMonoid.{u1} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (Units.group.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))))) (Module.Ray.mulAction.{u1, u2, u1} R _inst_1 M _inst_2 _inst_3 (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (Units.group.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (Units.distribMulAction.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)) (Units.smulCommClass_right.{u1, u1, u2} R R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) (smulCommClass_self.{u1, u2} R M (CommSemiring.toCommMonoid.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R _inst_1)) (MulActionWithZero.toMulAction.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))))) u v) v)
but is expected to have type
forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] (u : Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))))), (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedSemiring.toPartialOrder.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))))) (Units.val.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) u)) -> (forall (v : Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3), Eq.{succ u1} (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (HSMul.hSMul.{u2, u1, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))))) (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (instHSMul.{u2, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))))) (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (MulAction.toSMul.{u2, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))))) (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (DivInvMonoid.toMonoid.{u2} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))))) (Group.toDivInvMonoid.{u2} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))))) (Units.instGroupUnits.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))))))) (instMulActionRayToMonoidToDivInvMonoid.{u2, u1, u2} R _inst_1 M _inst_2 _inst_3 (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))))) (Units.instGroupUnits.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))))) (Units.instDistribMulActionUnitsToMonoidToDivInvMonoidInstGroupUnits.{u2, u1} R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} M _inst_2) (Module.toDistribMulAction.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3)) (Units.smulCommClass_right.{u2, u2, u1} R R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3)))) (SMulZeroClass.toSMul.{u2, u1} R M (AddZeroClass.toZero.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2))) (DistribSMul.toSMulZeroClass.{u2, u1} R M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (DistribMulAction.toDistribSMul.{u2, u1} R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} M _inst_2) (Module.toDistribMulAction.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3)))) (smulCommClass_self.{u2, u1} R M (CommSemiring.toCommMonoid.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1)) (MulActionWithZero.toMulAction.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3))))))) u v) v)
Case conversion may be inaccurate. Consider using '#align module.ray.units_smul_of_pos Module.Ray.units_smul_of_posₓ'. -/
@@ -683,7 +683,7 @@ theorem sameRay_neg_swap : SameRay R (-x) y ↔ SameRay R x (-y) := by rw [← s
/- warning: eq_zero_of_same_ray_neg_smul_right -> eq_zero_of_sameRay_neg_smul_right is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_4 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} [_inst_6 : NoZeroSMulDivisors.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4))))] {r : R}, (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))) r (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))))))))) -> (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4 x (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4)))) r x)) -> (Eq.{succ u2} M x (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))))))))
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_4 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} [_inst_6 : NoZeroSMulDivisors.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4))))] {r : R}, (LT.lt.{u1} R (Preorder.toHasLt.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))) r (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))))))))) -> (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4 x (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4)))) r x)) -> (Eq.{succ u2} M x (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))))))))
but is expected to have type
forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_4 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] {x : M} [_inst_6 : NoZeroSMulDivisors.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4))))] {r : R}, (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (StrictOrderedCommRing.toStrictOrderedRing.{u2} R _inst_1)))) r (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))))))) -> (SameRay.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4 x (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4))))) r x)) -> (Eq.{succ u1} M x (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))))))
Case conversion may be inaccurate. Consider using '#align eq_zero_of_same_ray_neg_smul_right eq_zero_of_sameRay_neg_smul_rightₓ'. -/
@@ -809,7 +809,7 @@ theorem neg_units_smul (u : Rˣ) (v : Module.Ray R M) : -u • v = -(u • v) :=
/- warning: module.ray.units_smul_of_neg -> Module.Ray.units_smul_of_neg is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_4 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] (u : Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))), (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) R (HasLiftT.mk.{succ u1, succ u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) R (CoeTCₓ.coe.{succ u1, succ u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) R (coeBase.{succ u1, succ u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) R (Units.hasCoe.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))))) u) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))))))))) -> (forall (v : Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4), Eq.{succ u2} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (SMul.smul.{u1, u2} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (MulAction.toHasSmul.{u1, u2} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (DivInvMonoid.toMonoid.{u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (Group.toDivInvMonoid.{u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (Units.group.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))))) (Module.Ray.mulAction.{u1, u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4 (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (Units.group.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (Units.distribMulAction.{u1, u2} R M (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)) (Module.toDistribMulAction.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4)) (Units.smulCommClass_right.{u1, u1, u2} R R M (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4)))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4)))) (smulCommClass_self.{u1, u2} R M (CommRing.toCommMonoid.{u1} R (StrictOrderedCommRing.toCommRing.{u1} R _inst_1)) (MulActionWithZero.toMulAction.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4)))))) u v) (Neg.neg.{u2} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Module.Ray.hasNeg.{u1, u2} R _inst_1 M _inst_2 _inst_4) v))
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_4 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] (u : Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))), (LT.lt.{u1} R (Preorder.toHasLt.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) R (HasLiftT.mk.{succ u1, succ u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) R (CoeTCₓ.coe.{succ u1, succ u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) R (coeBase.{succ u1, succ u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) R (Units.hasCoe.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))))) u) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))))))))) -> (forall (v : Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4), Eq.{succ u2} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (SMul.smul.{u1, u2} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (MulAction.toHasSmul.{u1, u2} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (DivInvMonoid.toMonoid.{u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (Group.toDivInvMonoid.{u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (Units.group.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))))) (Module.Ray.mulAction.{u1, u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4 (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (Units.group.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (Units.distribMulAction.{u1, u2} R M (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)) (Module.toDistribMulAction.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4)) (Units.smulCommClass_right.{u1, u1, u2} R R M (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4)))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4)))) (smulCommClass_self.{u1, u2} R M (CommRing.toCommMonoid.{u1} R (StrictOrderedCommRing.toCommRing.{u1} R _inst_1)) (MulActionWithZero.toMulAction.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4)))))) u v) (Neg.neg.{u2} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Module.Ray.hasNeg.{u1, u2} R _inst_1 M _inst_2 _inst_4) v))
but is expected to have type
forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_4 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] (u : Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))))), (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (StrictOrderedCommRing.toStrictOrderedRing.{u2} R _inst_1)))) (Units.val.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))))) u) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))))))) -> (forall (v : Module.Ray.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4), Eq.{succ u1} (Module.Ray.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4) (HSMul.hSMul.{u2, u1, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))))) (Module.Ray.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4) (Module.Ray.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4) (instHSMul.{u2, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))))) (Module.Ray.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4) (MulAction.toSMul.{u2, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))))) (Module.Ray.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4) (DivInvMonoid.toMonoid.{u2} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))))) (Group.toDivInvMonoid.{u2} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))))) (Units.instGroupUnits.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))))))) (instMulActionRayToMonoidToDivInvMonoid.{u2, u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4 (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))))) (Units.instGroupUnits.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))))) (Units.instDistribMulActionUnitsToMonoidToDivInvMonoidInstGroupUnits.{u2, u1} R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))))) (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)) (Module.toDistribMulAction.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4)) (Units.smulCommClass_right.{u2, u2, u1} R R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))))) (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4)))) (SMulZeroClass.toSMul.{u2, u1} R M (AddZeroClass.toZero.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)))) (DistribSMul.toSMulZeroClass.{u2, u1} R M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (DistribMulAction.toDistribSMul.{u2, u1} R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))))) (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)) (Module.toDistribMulAction.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4)))) (smulCommClass_self.{u2, u1} R M (CommRing.toCommMonoid.{u2} R (StrictOrderedCommRing.toCommRing.{u2} R _inst_1)) (MulActionWithZero.toMulAction.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4))))))) u v) (Neg.neg.{u1} (Module.Ray.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4) (instNegRayToStrictOrderedCommSemiringToAddCommMonoid.{u2, u1} R _inst_1 M _inst_2 _inst_4) v))
Case conversion may be inaccurate. Consider using '#align module.ray.units_smul_of_neg Module.Ray.units_smul_of_negₓ'. -/
@@ -879,7 +879,7 @@ variable [NoZeroSMulDivisors R M]
/- warning: same_ray_smul_right_iff -> sameRay_smul_right_iff is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))] {v : M} {r : R}, Iff (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 v (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r v)) (Or (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))))))) r) (Eq.{succ u2} M v (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))))
+ forall {R : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))] {v : M} {r : R}, Iff (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 v (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r v)) (Or (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))))))) r) (Eq.{succ u2} M v (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))))
but is expected to have type
forall {R : Type.{u2}} [_inst_1 : LinearOrderedCommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))] {v : M} {r : R}, Iff (SameRay.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 v (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))) r v)) (Or (LE.le.{u2} R (Preorder.toLE.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))))) r) (Eq.{succ u1} M v (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2)))))))))
Case conversion may be inaccurate. Consider using '#align same_ray_smul_right_iff sameRay_smul_right_iffₓ'. -/
@@ -891,7 +891,7 @@ theorem sameRay_smul_right_iff {v : M} {r : R} : SameRay R v (r • v) ↔ 0 ≤
/- warning: same_ray_smul_right_iff_of_ne -> sameRay_smul_right_iff_of_ne is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))] {v : M}, (Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (forall {r : R}, (Ne.{succ u1} R r (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))))))) -> (Iff (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 v (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r v)) (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))))))) r)))
+ forall {R : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))] {v : M}, (Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (forall {r : R}, (Ne.{succ u1} R r (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))))))) -> (Iff (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 v (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r v)) (LT.lt.{u1} R (Preorder.toHasLt.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))))))) r)))
but is expected to have type
forall {R : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))) (LinearOrderedRing.isDomain.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (SMulZeroClass.toSMul.{u1, u2} R M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))) (LinearOrderedRing.isDomain.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))] {v : M}, (Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2)))))))) -> (forall {r : R}, (Ne.{succ u1} R r (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))) (LinearOrderedRing.isDomain.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) -> (Iff (SameRay.{u1, u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 v (HSMul.hSMul.{u1, u2, u2} R M M (instHSMul.{u1, u2} R M (SMulZeroClass.toSMul.{u1, u2} R M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))) (LinearOrderedRing.isDomain.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) r v)) (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (StrictOrderedRing.toPartialOrder.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))) (LinearOrderedRing.isDomain.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))) r)))
Case conversion may be inaccurate. Consider using '#align same_ray_smul_right_iff_of_ne sameRay_smul_right_iff_of_neₓ'. -/
@@ -904,7 +904,7 @@ theorem sameRay_smul_right_iff_of_ne {v : M} (hv : v ≠ 0) {r : R} (hr : r ≠
/- warning: same_ray_smul_left_iff -> sameRay_smul_left_iff is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))] {v : M} {r : R}, Iff (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r v) v) (Or (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))))))) r) (Eq.{succ u2} M v (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))))
+ forall {R : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))] {v : M} {r : R}, Iff (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r v) v) (Or (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))))))) r) (Eq.{succ u2} M v (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))))
but is expected to have type
forall {R : Type.{u2}} [_inst_1 : LinearOrderedCommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))] {v : M} {r : R}, Iff (SameRay.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))) r v) v) (Or (LE.le.{u2} R (Preorder.toLE.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))))) r) (Eq.{succ u1} M v (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2)))))))))
Case conversion may be inaccurate. Consider using '#align same_ray_smul_left_iff sameRay_smul_left_iffₓ'. -/
@@ -915,7 +915,7 @@ theorem sameRay_smul_left_iff {v : M} {r : R} : SameRay R (r • v) v ↔ 0 ≤
/- warning: same_ray_smul_left_iff_of_ne -> sameRay_smul_left_iff_of_ne is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))] {v : M}, (Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (forall {r : R}, (Ne.{succ u1} R r (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))))))) -> (Iff (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r v) v) (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))))))) r)))
+ forall {R : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))] {v : M}, (Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (forall {r : R}, (Ne.{succ u1} R r (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))))))) -> (Iff (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r v) v) (LT.lt.{u1} R (Preorder.toHasLt.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))))))) r)))
but is expected to have type
forall {R : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))) (LinearOrderedRing.isDomain.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (SMulZeroClass.toSMul.{u1, u2} R M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))) (LinearOrderedRing.isDomain.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))] {v : M}, (Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2)))))))) -> (forall {r : R}, (Ne.{succ u1} R r (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))) (LinearOrderedRing.isDomain.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) -> (Iff (SameRay.{u1, u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (HSMul.hSMul.{u1, u2, u2} R M M (instHSMul.{u1, u2} R M (SMulZeroClass.toSMul.{u1, u2} R M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))) (LinearOrderedRing.isDomain.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) r v) v) (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (StrictOrderedRing.toPartialOrder.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))) (LinearOrderedRing.isDomain.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))) r)))
Case conversion may be inaccurate. Consider using '#align same_ray_smul_left_iff_of_ne sameRay_smul_left_iff_of_neₓ'. -/
@@ -928,7 +928,7 @@ theorem sameRay_smul_left_iff_of_ne {v : M} (hv : v ≠ 0) {r : R} (hr : r ≠ 0
/- warning: same_ray_neg_smul_right_iff -> sameRay_neg_smul_right_iff is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))] {v : M} {r : R}, Iff (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (Neg.neg.{u2} M (SubNegMonoid.toHasNeg.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))) v) (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r v)) (Or (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))) r (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))))))) (Eq.{succ u2} M v (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))))
+ forall {R : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))] {v : M} {r : R}, Iff (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (Neg.neg.{u2} M (SubNegMonoid.toHasNeg.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))) v) (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r v)) (Or (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))) r (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))))))) (Eq.{succ u2} M v (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))))
but is expected to have type
forall {R : Type.{u2}} [_inst_1 : LinearOrderedCommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))] {v : M} {r : R}, Iff (SameRay.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 (Neg.neg.{u1} M (NegZeroClass.toNeg.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) v) (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))) r v)) (Or (LE.le.{u2} R (Preorder.toLE.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) r (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1)))))))) (Eq.{succ u1} M v (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2)))))))))
Case conversion may be inaccurate. Consider using '#align same_ray_neg_smul_right_iff sameRay_neg_smul_right_iffₓ'. -/
@@ -939,7 +939,7 @@ theorem sameRay_neg_smul_right_iff {v : M} {r : R} : SameRay R (-v) (r • v)
/- warning: same_ray_neg_smul_right_iff_of_ne -> sameRay_neg_smul_right_iff_of_ne is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))] {v : M} {r : R}, (Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (Ne.{succ u1} R r (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))))))) -> (Iff (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (Neg.neg.{u2} M (SubNegMonoid.toHasNeg.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))) v) (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r v)) (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))) r (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))))))))
+ forall {R : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))] {v : M} {r : R}, (Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (Ne.{succ u1} R r (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))))))) -> (Iff (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (Neg.neg.{u2} M (SubNegMonoid.toHasNeg.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))) v) (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r v)) (LT.lt.{u1} R (Preorder.toHasLt.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))) r (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))))))))
but is expected to have type
forall {R : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))) (LinearOrderedRing.isDomain.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (SMulZeroClass.toSMul.{u1, u2} R M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))) (LinearOrderedRing.isDomain.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))] {v : M} {r : R}, (Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2)))))))) -> (Ne.{succ u1} R r (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))) (LinearOrderedRing.isDomain.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) -> (Iff (SameRay.{u1, u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (Neg.neg.{u2} M (NegZeroClass.toNeg.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) v) (HSMul.hSMul.{u1, u2, u2} R M M (instHSMul.{u1, u2} R M (SMulZeroClass.toSMul.{u1, u2} R M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))) (LinearOrderedRing.isDomain.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) r v)) (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (StrictOrderedRing.toPartialOrder.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) r (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))) (LinearOrderedRing.isDomain.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))))
Case conversion may be inaccurate. Consider using '#align same_ray_neg_smul_right_iff_of_ne sameRay_neg_smul_right_iff_of_neₓ'. -/
@@ -950,7 +950,7 @@ theorem sameRay_neg_smul_right_iff_of_ne {v : M} {r : R} (hv : v ≠ 0) (hr : r
/- warning: same_ray_neg_smul_left_iff -> sameRay_neg_smul_left_iff is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))] {v : M} {r : R}, Iff (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r v) (Neg.neg.{u2} M (SubNegMonoid.toHasNeg.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))) v)) (Or (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))) r (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))))))) (Eq.{succ u2} M v (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))))
+ forall {R : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))] {v : M} {r : R}, Iff (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r v) (Neg.neg.{u2} M (SubNegMonoid.toHasNeg.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))) v)) (Or (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))) r (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))))))) (Eq.{succ u2} M v (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))))
but is expected to have type
forall {R : Type.{u2}} [_inst_1 : LinearOrderedCommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))] {v : M} {r : R}, Iff (SameRay.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))) r v) (Neg.neg.{u1} M (NegZeroClass.toNeg.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) v)) (Or (LE.le.{u2} R (Preorder.toLE.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) r (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1)))))))) (Eq.{succ u1} M v (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2)))))))))
Case conversion may be inaccurate. Consider using '#align same_ray_neg_smul_left_iff sameRay_neg_smul_left_iffₓ'. -/
@@ -961,7 +961,7 @@ theorem sameRay_neg_smul_left_iff {v : M} {r : R} : SameRay R (r • v) (-v) ↔
/- warning: same_ray_neg_smul_left_iff_of_ne -> sameRay_neg_smul_left_iff_of_ne is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))] {v : M} {r : R}, (Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (Ne.{succ u1} R r (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))))))) -> (Iff (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r v) (Neg.neg.{u2} M (SubNegMonoid.toHasNeg.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))) v)) (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))) r (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))))))))
+ forall {R : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))] {v : M} {r : R}, (Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (Ne.{succ u1} R r (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))))))) -> (Iff (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r v) (Neg.neg.{u2} M (SubNegMonoid.toHasNeg.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))) v)) (LT.lt.{u1} R (Preorder.toHasLt.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))) r (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))))))))
but is expected to have type
forall {R : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))) (LinearOrderedRing.isDomain.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (SMulZeroClass.toSMul.{u1, u2} R M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))) (LinearOrderedRing.isDomain.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))] {v : M} {r : R}, (Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2)))))))) -> (Ne.{succ u1} R r (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))) (LinearOrderedRing.isDomain.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) -> (Iff (SameRay.{u1, u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (HSMul.hSMul.{u1, u2, u2} R M M (instHSMul.{u1, u2} R M (SMulZeroClass.toSMul.{u1, u2} R M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))) (LinearOrderedRing.isDomain.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) r v) (Neg.neg.{u2} M (NegZeroClass.toNeg.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) v)) (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (StrictOrderedRing.toPartialOrder.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) r (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))) (LinearOrderedRing.isDomain.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))))
Case conversion may be inaccurate. Consider using '#align same_ray_neg_smul_left_iff_of_ne sameRay_neg_smul_left_iff_of_neₓ'. -/
@@ -972,7 +972,7 @@ theorem sameRay_neg_smul_left_iff_of_ne {v : M} {r : R} (hv : v ≠ 0) (hr : r
/- warning: units_smul_eq_self_iff -> units_smul_eq_self_iff is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))] {u : Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))} {v : Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3}, Iff (Eq.{succ u2} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SMul.smul.{u1, u2} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (MulAction.toHasSmul.{u1, u2} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (DivInvMonoid.toMonoid.{u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Group.toDivInvMonoid.{u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Units.group.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))) (Module.Ray.mulAction.{u1, u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Units.group.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Units.distribMulAction.{u1, u2} R M (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)) (Module.toDistribMulAction.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Units.smulCommClass_right.{u1, u1, u2} R R M (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) (smulCommClass_self.{u1, u2} R M (LinearOrderedCommRing.toCommMonoid.{u1} R _inst_1) (MulActionWithZero.toMulAction.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))))) u v) v) (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))))))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) R (HasLiftT.mk.{succ u1, succ u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) R (CoeTCₓ.coe.{succ u1, succ u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) R (coeBase.{succ u1, succ u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) R (Units.hasCoe.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) u))
+ forall {R : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))] {u : Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))} {v : Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3}, Iff (Eq.{succ u2} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SMul.smul.{u1, u2} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (MulAction.toHasSmul.{u1, u2} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (DivInvMonoid.toMonoid.{u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Group.toDivInvMonoid.{u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Units.group.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))) (Module.Ray.mulAction.{u1, u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Units.group.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Units.distribMulAction.{u1, u2} R M (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)) (Module.toDistribMulAction.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Units.smulCommClass_right.{u1, u1, u2} R R M (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) (smulCommClass_self.{u1, u2} R M (LinearOrderedCommRing.toCommMonoid.{u1} R _inst_1) (MulActionWithZero.toMulAction.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))))) u v) v) (LT.lt.{u1} R (Preorder.toHasLt.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))))))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) R (HasLiftT.mk.{succ u1, succ u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) R (CoeTCₓ.coe.{succ u1, succ u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) R (coeBase.{succ u1, succ u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) R (Units.hasCoe.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) u))
but is expected to have type
forall {R : Type.{u2}} [_inst_1 : LinearOrderedCommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))] {u : Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))} {v : Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3}, Iff (Eq.{succ u1} (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (HSMul.hSMul.{u2, u1, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (instHSMul.{u2, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (MulAction.toSMul.{u2, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (DivInvMonoid.toMonoid.{u2} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Group.toDivInvMonoid.{u2} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Units.instGroupUnits.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))))) (instMulActionRayToMonoidToDivInvMonoid.{u2, u1, u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Units.instGroupUnits.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Units.instDistribMulActionUnitsToMonoidToDivInvMonoidInstGroupUnits.{u2, u1} R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))))) (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)) (Module.toDistribMulAction.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)) (Units.smulCommClass_right.{u2, u2, u1} R R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))))) (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u2, u1} R M (AddZeroClass.toZero.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)))) (DistribSMul.toSMulZeroClass.{u2, u1} R M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (DistribMulAction.toDistribSMul.{u2, u1} R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))))) (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)) (Module.toDistribMulAction.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))) (smulCommClass_self.{u2, u1} R M (LinearOrderedCommRing.toCommMonoid.{u2} R _inst_1) (MulActionWithZero.toMulAction.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))))) u v) v) (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))))) (Units.val.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))))) u))
Case conversion may be inaccurate. Consider using '#align units_smul_eq_self_iff units_smul_eq_self_iffₓ'. -/
@@ -985,7 +985,7 @@ theorem units_smul_eq_self_iff {u : Rˣ} {v : Module.Ray R M} : u • v = v ↔
/- warning: units_smul_eq_neg_iff -> units_smul_eq_neg_iff is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))] {u : Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))} {v : Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3}, Iff (Eq.{succ u2} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SMul.smul.{u1, u2} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (MulAction.toHasSmul.{u1, u2} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (DivInvMonoid.toMonoid.{u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Group.toDivInvMonoid.{u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Units.group.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))) (Module.Ray.mulAction.{u1, u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Units.group.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Units.distribMulAction.{u1, u2} R M (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)) (Module.toDistribMulAction.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Units.smulCommClass_right.{u1, u1, u2} R R M (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) (smulCommClass_self.{u1, u2} R M (LinearOrderedCommRing.toCommMonoid.{u1} R _inst_1) (MulActionWithZero.toMulAction.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))))) u v) (Neg.neg.{u2} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Module.Ray.hasNeg.{u1, u2} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1) M _inst_2 _inst_3) v)) (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) R (HasLiftT.mk.{succ u1, succ u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) R (CoeTCₓ.coe.{succ u1, succ u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) R (coeBase.{succ u1, succ u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) R (Units.hasCoe.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) u) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))))))))
+ forall {R : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))] {u : Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))} {v : Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3}, Iff (Eq.{succ u2} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SMul.smul.{u1, u2} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (MulAction.toHasSmul.{u1, u2} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (DivInvMonoid.toMonoid.{u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Group.toDivInvMonoid.{u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Units.group.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))) (Module.Ray.mulAction.{u1, u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Units.group.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Units.distribMulAction.{u1, u2} R M (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)) (Module.toDistribMulAction.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Units.smulCommClass_right.{u1, u1, u2} R R M (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) (smulCommClass_self.{u1, u2} R M (LinearOrderedCommRing.toCommMonoid.{u1} R _inst_1) (MulActionWithZero.toMulAction.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))))) u v) (Neg.neg.{u2} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Module.Ray.hasNeg.{u1, u2} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1) M _inst_2 _inst_3) v)) (LT.lt.{u1} R (Preorder.toHasLt.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) R (HasLiftT.mk.{succ u1, succ u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) R (CoeTCₓ.coe.{succ u1, succ u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) R (coeBase.{succ u1, succ u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) R (Units.hasCoe.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) u) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))))))))
but is expected to have type
forall {R : Type.{u2}} [_inst_1 : LinearOrderedCommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))] {u : Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))} {v : Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3}, Iff (Eq.{succ u1} (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (HSMul.hSMul.{u2, u1, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (instHSMul.{u2, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (MulAction.toSMul.{u2, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (DivInvMonoid.toMonoid.{u2} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Group.toDivInvMonoid.{u2} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Units.instGroupUnits.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))))) (instMulActionRayToMonoidToDivInvMonoid.{u2, u1, u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Units.instGroupUnits.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Units.instDistribMulActionUnitsToMonoidToDivInvMonoidInstGroupUnits.{u2, u1} R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))))) (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)) (Module.toDistribMulAction.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)) (Units.smulCommClass_right.{u2, u2, u1} R R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))))) (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u2, u1} R M (AddZeroClass.toZero.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)))) (DistribSMul.toSMulZeroClass.{u2, u1} R M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (DistribMulAction.toDistribSMul.{u2, u1} R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))))) (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)) (Module.toDistribMulAction.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))) (smulCommClass_self.{u2, u1} R M (LinearOrderedCommRing.toCommMonoid.{u2} R _inst_1) (MulActionWithZero.toMulAction.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))))) u v) (Neg.neg.{u1} (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (instNegRayToStrictOrderedCommSemiringToAddCommMonoid.{u2, u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u2} R _inst_1) M _inst_2 _inst_3) v)) (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (Units.val.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))))) u) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))))))
Case conversion may be inaccurate. Consider using '#align units_smul_eq_neg_iff units_smul_eq_neg_iffₓ'. -/
@@ -1072,7 +1072,7 @@ variable {M : Type _} [AddCommGroup M] [Module R M] {x y v₁ v₂ : M}
/- warning: same_ray.exists_pos_left -> SameRay.exists_pos_left is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x y) -> (Ne.{succ u2} M x (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (Ne.{succ u2} M y (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (Exists.{succ u1} R (fun (r : R) => And (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) r) (Eq.{succ u2} M (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r x) y)))
+ forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x y) -> (Ne.{succ u2} M x (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (Ne.{succ u2} M y (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (Exists.{succ u1} R (fun (r : R) => And (LT.lt.{u1} R (Preorder.toHasLt.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) r) (Eq.{succ u2} M (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r x) y)))
but is expected to have type
forall {R : Type.{u2}} [_inst_1 : LinearOrderedField.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] {x : M} {y : M}, (SameRay.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 x y) -> (Ne.{succ u1} M x (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2)))))))) -> (Ne.{succ u1} M y (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2)))))))) -> (Exists.{succ u2} R (fun (r : R) => And (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R (LinearOrderedField.toLinearOrderedCommRing.{u2} R _inst_1)))))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))))) r) (Eq.{succ u1} M (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))) r x) y)))
Case conversion may be inaccurate. Consider using '#align same_ray.exists_pos_left SameRay.exists_pos_leftₓ'. -/
@@ -1084,7 +1084,7 @@ theorem exists_pos_left (h : SameRay R x y) (hx : x ≠ 0) (hy : y ≠ 0) :
/- warning: same_ray.exists_pos_right -> SameRay.exists_pos_right is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x y) -> (Ne.{succ u2} M x (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (Ne.{succ u2} M y (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (Exists.{succ u1} R (fun (r : R) => And (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) r) (Eq.{succ u2} M x (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r y))))
+ forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x y) -> (Ne.{succ u2} M x (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (Ne.{succ u2} M y (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (Exists.{succ u1} R (fun (r : R) => And (LT.lt.{u1} R (Preorder.toHasLt.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) r) (Eq.{succ u2} M x (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r y))))
but is expected to have type
forall {R : Type.{u2}} [_inst_1 : LinearOrderedField.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] {x : M} {y : M}, (SameRay.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 x y) -> (Ne.{succ u1} M x (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2)))))))) -> (Ne.{succ u1} M y (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2)))))))) -> (Exists.{succ u2} R (fun (r : R) => And (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R (LinearOrderedField.toLinearOrderedCommRing.{u2} R _inst_1)))))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))))) r) (Eq.{succ u1} M x (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))) r y))))
Case conversion may be inaccurate. Consider using '#align same_ray.exists_pos_right SameRay.exists_pos_rightₓ'. -/
@@ -1095,7 +1095,7 @@ theorem exists_pos_right (h : SameRay R x y) (hx : x ≠ 0) (hy : y ≠ 0) :
/- warning: same_ray.exists_nonneg_left -> SameRay.exists_nonneg_left is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x y) -> (Ne.{succ u2} M x (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (Exists.{succ u1} R (fun (r : R) => And (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) r) (Eq.{succ u2} M (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r x) y)))
+ forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x y) -> (Ne.{succ u2} M x (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (Exists.{succ u1} R (fun (r : R) => And (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) r) (Eq.{succ u2} M (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r x) y)))
but is expected to have type
forall {R : Type.{u2}} [_inst_1 : LinearOrderedField.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] {x : M} {y : M}, (SameRay.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 x y) -> (Ne.{succ u1} M x (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2)))))))) -> (Exists.{succ u2} R (fun (r : R) => And (LE.le.{u2} R (Preorder.toLE.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R (LinearOrderedField.toLinearOrderedCommRing.{u2} R _inst_1)))))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))))) r) (Eq.{succ u1} M (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))) r x) y)))
Case conversion may be inaccurate. Consider using '#align same_ray.exists_nonneg_left SameRay.exists_nonneg_leftₓ'. -/
@@ -1110,7 +1110,7 @@ theorem exists_nonneg_left (h : SameRay R x y) (hx : x ≠ 0) : ∃ r : R, 0 ≤
/- warning: same_ray.exists_nonneg_right -> SameRay.exists_nonneg_right is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x y) -> (Ne.{succ u2} M y (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (Exists.{succ u1} R (fun (r : R) => And (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) r) (Eq.{succ u2} M x (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r y))))
+ forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x y) -> (Ne.{succ u2} M y (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (Exists.{succ u1} R (fun (r : R) => And (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) r) (Eq.{succ u2} M x (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r y))))
but is expected to have type
forall {R : Type.{u2}} [_inst_1 : LinearOrderedField.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] {x : M} {y : M}, (SameRay.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 x y) -> (Ne.{succ u1} M y (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2)))))))) -> (Exists.{succ u2} R (fun (r : R) => And (LE.le.{u2} R (Preorder.toLE.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R (LinearOrderedField.toLinearOrderedCommRing.{u2} R _inst_1)))))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))))) r) (Eq.{succ u1} M x (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))) r y))))
Case conversion may be inaccurate. Consider using '#align same_ray.exists_nonneg_right SameRay.exists_nonneg_rightₓ'. -/
@@ -1122,7 +1122,7 @@ theorem exists_nonneg_right (h : SameRay R x y) (hy : y ≠ 0) : ∃ r : R, 0
/- warning: same_ray.exists_eq_smul_add -> SameRay.exists_eq_smul_add is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {v₁ : M} {v₂ : M}, (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 v₁ v₂) -> (Exists.{succ u1} R (fun (a : R) => Exists.{succ u1} R (fun (b : R) => And (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) a) (And (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) b) (And (Eq.{succ u1} R (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toHasAdd.{u1} R (Ring.toDistrib.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))) a b) (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) (And (Eq.{succ u2} M v₁ (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) a (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toHasAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))))) v₁ v₂))) (Eq.{succ u2} M v₂ (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) b (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toHasAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))))) v₁ v₂)))))))))
+ forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {v₁ : M} {v₂ : M}, (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 v₁ v₂) -> (Exists.{succ u1} R (fun (a : R) => Exists.{succ u1} R (fun (b : R) => And (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) a) (And (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) b) (And (Eq.{succ u1} R (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toHasAdd.{u1} R (Ring.toDistrib.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))) a b) (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) (And (Eq.{succ u2} M v₁ (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) a (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toHasAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))))) v₁ v₂))) (Eq.{succ u2} M v₂ (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) b (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toHasAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))))) v₁ v₂)))))))))
but is expected to have type
forall {R : Type.{u2}} [_inst_1 : LinearOrderedField.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] {v₁ : M} {v₂ : M}, (SameRay.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 v₁ v₂) -> (Exists.{succ u2} R (fun (a : R) => Exists.{succ u2} R (fun (b : R) => And (LE.le.{u2} R (Preorder.toLE.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R (LinearOrderedField.toLinearOrderedCommRing.{u2} R _inst_1)))))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))))) a) (And (LE.le.{u2} R (Preorder.toLE.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R (LinearOrderedField.toLinearOrderedCommRing.{u2} R _inst_1)))))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))))) b) (And (Eq.{succ u2} R (HAdd.hAdd.{u2, u2, u2} R R R (instHAdd.{u2} R (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (DivisionRing.toRing.{u2} R (Field.toDivisionRing.{u2} R (LinearOrderedField.toField.{u2} R _inst_1))))))))) a b) (OfNat.ofNat.{u2} R 1 (One.toOfNat1.{u2} R (Semiring.toOne.{u2} R (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))))))) (And (Eq.{succ u1} M v₁ (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))) a (HAdd.hAdd.{u1, u1, u1} M M M (instHAdd.{u1} M (AddZeroClass.toAdd.{u1} M (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_2)))))) v₁ v₂))) (Eq.{succ u1} M v₂ (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))) b (HAdd.hAdd.{u1, u1, u1} M M M (instHAdd.{u1} M (AddZeroClass.toAdd.{u1} M (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_2)))))) v₁ v₂)))))))))
Case conversion may be inaccurate. Consider using '#align same_ray.exists_eq_smul_add SameRay.exists_eq_smul_addₓ'. -/
@@ -1146,7 +1146,7 @@ theorem exists_eq_smul_add (h : SameRay R v₁ v₂) :
/- warning: same_ray.exists_eq_smul -> SameRay.exists_eq_smul is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {v₁ : M} {v₂ : M}, (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 v₁ v₂) -> (Exists.{succ u2} M (fun (u : M) => Exists.{succ u1} R (fun (a : R) => Exists.{succ u1} R (fun (b : R) => And (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) a) (And (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) b) (And (Eq.{succ u1} R (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toHasAdd.{u1} R (Ring.toDistrib.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))) a b) (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) (And (Eq.{succ u2} M v₁ (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) a u)) (Eq.{succ u2} M v₂ (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) b u)))))))))
+ forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {v₁ : M} {v₂ : M}, (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 v₁ v₂) -> (Exists.{succ u2} M (fun (u : M) => Exists.{succ u1} R (fun (a : R) => Exists.{succ u1} R (fun (b : R) => And (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) a) (And (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) b) (And (Eq.{succ u1} R (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toHasAdd.{u1} R (Ring.toDistrib.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))) a b) (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) (And (Eq.{succ u2} M v₁ (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) a u)) (Eq.{succ u2} M v₂ (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) b u)))))))))
but is expected to have type
forall {R : Type.{u2}} [_inst_1 : LinearOrderedField.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] {v₁ : M} {v₂ : M}, (SameRay.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 v₁ v₂) -> (Exists.{succ u1} M (fun (u : M) => Exists.{succ u2} R (fun (a : R) => Exists.{succ u2} R (fun (b : R) => And (LE.le.{u2} R (Preorder.toLE.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R (LinearOrderedField.toLinearOrderedCommRing.{u2} R _inst_1)))))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))))) a) (And (LE.le.{u2} R (Preorder.toLE.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R (LinearOrderedField.toLinearOrderedCommRing.{u2} R _inst_1)))))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))))) b) (And (Eq.{succ u2} R (HAdd.hAdd.{u2, u2, u2} R R R (instHAdd.{u2} R (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (DivisionRing.toRing.{u2} R (Field.toDivisionRing.{u2} R (LinearOrderedField.toField.{u2} R _inst_1))))))))) a b) (OfNat.ofNat.{u2} R 1 (One.toOfNat1.{u2} R (Semiring.toOne.{u2} R (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))))))) (And (Eq.{succ u1} M v₁ (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))) a u)) (Eq.{succ u1} M v₂ (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))) b u)))))))))
Case conversion may be inaccurate. Consider using '#align same_ray.exists_eq_smul SameRay.exists_eq_smulₓ'. -/
@@ -1167,7 +1167,7 @@ variable {M : Type _} [AddCommGroup M] [Module R M] {x y : M}
/- warning: exists_pos_left_iff_same_ray -> exists_pos_left_iff_sameRay is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, (Ne.{succ u2} M x (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (Ne.{succ u2} M y (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (Iff (Exists.{succ u1} R (fun (r : R) => And (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) r) (Eq.{succ u2} M (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r x) y))) (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x y))
+ forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, (Ne.{succ u2} M x (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (Ne.{succ u2} M y (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (Iff (Exists.{succ u1} R (fun (r : R) => And (LT.lt.{u1} R (Preorder.toHasLt.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) r) (Eq.{succ u2} M (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r x) y))) (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x y))
but is expected to have type
forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (DivisionSemiring.toSemiring.{u1} R (Semifield.toDivisionSemiring.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, (Ne.{succ u2} M x (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2)))))))) -> (Ne.{succ u2} M y (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2)))))))) -> (Iff (Exists.{succ u1} R (fun (r : R) => And (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (StrictOrderedRing.toPartialOrder.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)))))) (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CommGroupWithZero.toCommMonoidWithZero.{u1} R (Semifield.toCommGroupWithZero.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))))))) r) (Eq.{succ u2} M (HSMul.hSMul.{u1, u2, u2} R M M (instHSMul.{u1, u2} R M (SMulZeroClass.toSMul.{u1, u2} R M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CommGroupWithZero.toCommMonoidWithZero.{u1} R (Semifield.toCommGroupWithZero.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (DivisionSemiring.toSemiring.{u1} R (Semifield.toDivisionSemiring.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} R M (DivisionSemiring.toSemiring.{u1} R (Semifield.toDivisionSemiring.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) r x) y))) (SameRay.{u1, u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x y))
Case conversion may be inaccurate. Consider using '#align exists_pos_left_iff_same_ray exists_pos_left_iff_sameRayₓ'. -/
@@ -1181,7 +1181,7 @@ theorem exists_pos_left_iff_sameRay (hx : x ≠ 0) (hy : y ≠ 0) :
/- warning: exists_pos_left_iff_same_ray_and_ne_zero -> exists_pos_left_iff_sameRay_and_ne_zero is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, (Ne.{succ u2} M x (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (Iff (Exists.{succ u1} R (fun (r : R) => And (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) r) (Eq.{succ u2} M (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r x) y))) (And (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x y) (Ne.{succ u2} M y (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))))))))))
+ forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, (Ne.{succ u2} M x (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (Iff (Exists.{succ u1} R (fun (r : R) => And (LT.lt.{u1} R (Preorder.toHasLt.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) r) (Eq.{succ u2} M (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r x) y))) (And (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x y) (Ne.{succ u2} M y (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))))))))))
but is expected to have type
forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (DivisionSemiring.toSemiring.{u1} R (Semifield.toDivisionSemiring.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, (Ne.{succ u2} M x (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2)))))))) -> (Iff (Exists.{succ u1} R (fun (r : R) => And (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (StrictOrderedRing.toPartialOrder.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)))))) (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CommGroupWithZero.toCommMonoidWithZero.{u1} R (Semifield.toCommGroupWithZero.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))))))) r) (Eq.{succ u2} M (HSMul.hSMul.{u1, u2, u2} R M M (instHSMul.{u1, u2} R M (SMulZeroClass.toSMul.{u1, u2} R M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CommGroupWithZero.toCommMonoidWithZero.{u1} R (Semifield.toCommGroupWithZero.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (DivisionSemiring.toSemiring.{u1} R (Semifield.toDivisionSemiring.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} R M (DivisionSemiring.toSemiring.{u1} R (Semifield.toDivisionSemiring.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) r x) y))) (And (SameRay.{u1, u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x y) (Ne.{succ u2} M y (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))))))))
Case conversion may be inaccurate. Consider using '#align exists_pos_left_iff_same_ray_and_ne_zero exists_pos_left_iff_sameRay_and_ne_zeroₓ'. -/
@@ -1197,7 +1197,7 @@ theorem exists_pos_left_iff_sameRay_and_ne_zero (hx : x ≠ 0) :
/- warning: exists_nonneg_left_iff_same_ray -> exists_nonneg_left_iff_sameRay is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, (Ne.{succ u2} M x (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (Iff (Exists.{succ u1} R (fun (r : R) => And (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) r) (Eq.{succ u2} M (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r x) y))) (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x y))
+ forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, (Ne.{succ u2} M x (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (Iff (Exists.{succ u1} R (fun (r : R) => And (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) r) (Eq.{succ u2} M (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r x) y))) (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x y))
but is expected to have type
forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (DivisionSemiring.toSemiring.{u1} R (Semifield.toDivisionSemiring.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, (Ne.{succ u2} M x (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2)))))))) -> (Iff (Exists.{succ u1} R (fun (r : R) => And (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (StrictOrderedRing.toPartialOrder.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)))))) (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CommGroupWithZero.toCommMonoidWithZero.{u1} R (Semifield.toCommGroupWithZero.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))))))) r) (Eq.{succ u2} M (HSMul.hSMul.{u1, u2, u2} R M M (instHSMul.{u1, u2} R M (SMulZeroClass.toSMul.{u1, u2} R M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CommGroupWithZero.toCommMonoidWithZero.{u1} R (Semifield.toCommGroupWithZero.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (DivisionSemiring.toSemiring.{u1} R (Semifield.toDivisionSemiring.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} R M (DivisionSemiring.toSemiring.{u1} R (Semifield.toDivisionSemiring.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) r x) y))) (SameRay.{u1, u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x y))
Case conversion may be inaccurate. Consider using '#align exists_nonneg_left_iff_same_ray exists_nonneg_left_iff_sameRayₓ'. -/
@@ -1211,7 +1211,7 @@ theorem exists_nonneg_left_iff_sameRay (hx : x ≠ 0) :
/- warning: exists_pos_right_iff_same_ray -> exists_pos_right_iff_sameRay is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, (Ne.{succ u2} M x (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (Ne.{succ u2} M y (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (Iff (Exists.{succ u1} R (fun (r : R) => And (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) r) (Eq.{succ u2} M x (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r y)))) (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x y))
+ forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, (Ne.{succ u2} M x (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (Ne.{succ u2} M y (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (Iff (Exists.{succ u1} R (fun (r : R) => And (LT.lt.{u1} R (Preorder.toHasLt.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) r) (Eq.{succ u2} M x (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r y)))) (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x y))
but is expected to have type
forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (DivisionSemiring.toSemiring.{u1} R (Semifield.toDivisionSemiring.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, (Ne.{succ u2} M x (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2)))))))) -> (Ne.{succ u2} M y (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2)))))))) -> (Iff (Exists.{succ u1} R (fun (r : R) => And (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (StrictOrderedRing.toPartialOrder.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)))))) (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CommGroupWithZero.toCommMonoidWithZero.{u1} R (Semifield.toCommGroupWithZero.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))))))) r) (Eq.{succ u2} M x (HSMul.hSMul.{u1, u2, u2} R M M (instHSMul.{u1, u2} R M (SMulZeroClass.toSMul.{u1, u2} R M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CommGroupWithZero.toCommMonoidWithZero.{u1} R (Semifield.toCommGroupWithZero.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (DivisionSemiring.toSemiring.{u1} R (Semifield.toDivisionSemiring.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} R M (DivisionSemiring.toSemiring.{u1} R (Semifield.toDivisionSemiring.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) r y)))) (SameRay.{u1, u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x y))
Case conversion may be inaccurate. Consider using '#align exists_pos_right_iff_same_ray exists_pos_right_iff_sameRayₓ'. -/
@@ -1222,7 +1222,7 @@ theorem exists_pos_right_iff_sameRay (hx : x ≠ 0) (hy : y ≠ 0) :
/- warning: exists_pos_right_iff_same_ray_and_ne_zero -> exists_pos_right_iff_sameRay_and_ne_zero is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, (Ne.{succ u2} M y (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (Iff (Exists.{succ u1} R (fun (r : R) => And (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) r) (Eq.{succ u2} M x (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r y)))) (And (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x y) (Ne.{succ u2} M x (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))))))))))
+ forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, (Ne.{succ u2} M y (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (Iff (Exists.{succ u1} R (fun (r : R) => And (LT.lt.{u1} R (Preorder.toHasLt.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) r) (Eq.{succ u2} M x (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r y)))) (And (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x y) (Ne.{succ u2} M x (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))))))))))
but is expected to have type
forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (DivisionSemiring.toSemiring.{u1} R (Semifield.toDivisionSemiring.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, (Ne.{succ u2} M y (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2)))))))) -> (Iff (Exists.{succ u1} R (fun (r : R) => And (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (StrictOrderedRing.toPartialOrder.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)))))) (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CommGroupWithZero.toCommMonoidWithZero.{u1} R (Semifield.toCommGroupWithZero.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))))))) r) (Eq.{succ u2} M x (HSMul.hSMul.{u1, u2, u2} R M M (instHSMul.{u1, u2} R M (SMulZeroClass.toSMul.{u1, u2} R M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CommGroupWithZero.toCommMonoidWithZero.{u1} R (Semifield.toCommGroupWithZero.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (DivisionSemiring.toSemiring.{u1} R (Semifield.toDivisionSemiring.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} R M (DivisionSemiring.toSemiring.{u1} R (Semifield.toDivisionSemiring.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) r y)))) (And (SameRay.{u1, u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x y) (Ne.{succ u2} M x (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))))))))
Case conversion may be inaccurate. Consider using '#align exists_pos_right_iff_same_ray_and_ne_zero exists_pos_right_iff_sameRay_and_ne_zeroₓ'. -/
@@ -1233,7 +1233,7 @@ theorem exists_pos_right_iff_sameRay_and_ne_zero (hy : y ≠ 0) :
/- warning: exists_nonneg_right_iff_same_ray -> exists_nonneg_right_iff_sameRay is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, (Ne.{succ u2} M y (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (Iff (Exists.{succ u1} R (fun (r : R) => And (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) r) (Eq.{succ u2} M x (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r y)))) (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x y))
+ forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, (Ne.{succ u2} M y (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (Iff (Exists.{succ u1} R (fun (r : R) => And (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) r) (Eq.{succ u2} M x (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r y)))) (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x y))
but is expected to have type
forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (DivisionSemiring.toSemiring.{u1} R (Semifield.toDivisionSemiring.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, (Ne.{succ u2} M y (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2)))))))) -> (Iff (Exists.{succ u1} R (fun (r : R) => And (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (StrictOrderedRing.toPartialOrder.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)))))) (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CommGroupWithZero.toCommMonoidWithZero.{u1} R (Semifield.toCommGroupWithZero.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))))))) r) (Eq.{succ u2} M x (HSMul.hSMul.{u1, u2, u2} R M M (instHSMul.{u1, u2} R M (SMulZeroClass.toSMul.{u1, u2} R M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CommGroupWithZero.toCommMonoidWithZero.{u1} R (Semifield.toCommGroupWithZero.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (DivisionSemiring.toSemiring.{u1} R (Semifield.toDivisionSemiring.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} R M (DivisionSemiring.toSemiring.{u1} R (Semifield.toDivisionSemiring.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) r y)))) (SameRay.{u1, u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x y))
Case conversion may be inaccurate. Consider using '#align exists_nonneg_right_iff_same_ray exists_nonneg_right_iff_sameRayₓ'. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/08e1d8d4d989df3a6df86f385e9053ec8a372cc1
@@ -1124,7 +1124,7 @@ theorem exists_nonneg_right (h : SameRay R x y) (hy : y ≠ 0) : ∃ r : R, 0
lean 3 declaration is
forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {v₁ : M} {v₂ : M}, (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 v₁ v₂) -> (Exists.{succ u1} R (fun (a : R) => Exists.{succ u1} R (fun (b : R) => And (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) a) (And (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) b) (And (Eq.{succ u1} R (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toHasAdd.{u1} R (Ring.toDistrib.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))) a b) (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) (And (Eq.{succ u2} M v₁ (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) a (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toHasAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))))) v₁ v₂))) (Eq.{succ u2} M v₂ (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) b (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toHasAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))))) v₁ v₂)))))))))
but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : LinearOrderedField.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] {v₁ : M} {v₂ : M}, (SameRay.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 v₁ v₂) -> (Exists.{succ u2} R (fun (a : R) => Exists.{succ u2} R (fun (b : R) => And (LE.le.{u2} R (Preorder.toLE.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R (LinearOrderedField.toLinearOrderedCommRing.{u2} R _inst_1)))))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))))) a) (And (LE.le.{u2} R (Preorder.toLE.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R (LinearOrderedField.toLinearOrderedCommRing.{u2} R _inst_1)))))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))))) b) (And (Eq.{succ u2} R (HAdd.hAdd.{u2, u2, u2} R R R (instHAdd.{u2} R (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (DivisionRing.toRing.{u2} R (Field.toDivisionRing.{u2} R (LinearOrderedField.toField.{u2} R _inst_1))))))))) a b) (OfNat.ofNat.{u2} R 1 (One.toOfNat1.{u2} R (NonAssocRing.toOne.{u2} R (Ring.toNonAssocRing.{u2} R (DivisionRing.toRing.{u2} R (Field.toDivisionRing.{u2} R (LinearOrderedField.toField.{u2} R _inst_1)))))))) (And (Eq.{succ u1} M v₁ (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))) a (HAdd.hAdd.{u1, u1, u1} M M M (instHAdd.{u1} M (AddZeroClass.toAdd.{u1} M (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_2)))))) v₁ v₂))) (Eq.{succ u1} M v₂ (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))) b (HAdd.hAdd.{u1, u1, u1} M M M (instHAdd.{u1} M (AddZeroClass.toAdd.{u1} M (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_2)))))) v₁ v₂)))))))))
+ forall {R : Type.{u2}} [_inst_1 : LinearOrderedField.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] {v₁ : M} {v₂ : M}, (SameRay.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 v₁ v₂) -> (Exists.{succ u2} R (fun (a : R) => Exists.{succ u2} R (fun (b : R) => And (LE.le.{u2} R (Preorder.toLE.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R (LinearOrderedField.toLinearOrderedCommRing.{u2} R _inst_1)))))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))))) a) (And (LE.le.{u2} R (Preorder.toLE.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R (LinearOrderedField.toLinearOrderedCommRing.{u2} R _inst_1)))))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))))) b) (And (Eq.{succ u2} R (HAdd.hAdd.{u2, u2, u2} R R R (instHAdd.{u2} R (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (DivisionRing.toRing.{u2} R (Field.toDivisionRing.{u2} R (LinearOrderedField.toField.{u2} R _inst_1))))))))) a b) (OfNat.ofNat.{u2} R 1 (One.toOfNat1.{u2} R (Semiring.toOne.{u2} R (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))))))) (And (Eq.{succ u1} M v₁ (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))) a (HAdd.hAdd.{u1, u1, u1} M M M (instHAdd.{u1} M (AddZeroClass.toAdd.{u1} M (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_2)))))) v₁ v₂))) (Eq.{succ u1} M v₂ (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))) b (HAdd.hAdd.{u1, u1, u1} M M M (instHAdd.{u1} M (AddZeroClass.toAdd.{u1} M (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_2)))))) v₁ v₂)))))))))
Case conversion may be inaccurate. Consider using '#align same_ray.exists_eq_smul_add SameRay.exists_eq_smul_addₓ'. -/
/-- If vectors `v₁` and `v₂` are on the same ray, then for some nonnegative `a b`, `a + b = 1`, we
have `v₁ = a • (v₁ + v₂)` and `v₂ = b • (v₁ + v₂)`. -/
@@ -1148,7 +1148,7 @@ theorem exists_eq_smul_add (h : SameRay R v₁ v₂) :
lean 3 declaration is
forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {v₁ : M} {v₂ : M}, (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 v₁ v₂) -> (Exists.{succ u2} M (fun (u : M) => Exists.{succ u1} R (fun (a : R) => Exists.{succ u1} R (fun (b : R) => And (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) a) (And (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) b) (And (Eq.{succ u1} R (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toHasAdd.{u1} R (Ring.toDistrib.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))) a b) (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) (And (Eq.{succ u2} M v₁ (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) a u)) (Eq.{succ u2} M v₂ (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) b u)))))))))
but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : LinearOrderedField.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] {v₁ : M} {v₂ : M}, (SameRay.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 v₁ v₂) -> (Exists.{succ u1} M (fun (u : M) => Exists.{succ u2} R (fun (a : R) => Exists.{succ u2} R (fun (b : R) => And (LE.le.{u2} R (Preorder.toLE.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R (LinearOrderedField.toLinearOrderedCommRing.{u2} R _inst_1)))))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))))) a) (And (LE.le.{u2} R (Preorder.toLE.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R (LinearOrderedField.toLinearOrderedCommRing.{u2} R _inst_1)))))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))))) b) (And (Eq.{succ u2} R (HAdd.hAdd.{u2, u2, u2} R R R (instHAdd.{u2} R (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (DivisionRing.toRing.{u2} R (Field.toDivisionRing.{u2} R (LinearOrderedField.toField.{u2} R _inst_1))))))))) a b) (OfNat.ofNat.{u2} R 1 (One.toOfNat1.{u2} R (NonAssocRing.toOne.{u2} R (Ring.toNonAssocRing.{u2} R (DivisionRing.toRing.{u2} R (Field.toDivisionRing.{u2} R (LinearOrderedField.toField.{u2} R _inst_1)))))))) (And (Eq.{succ u1} M v₁ (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))) a u)) (Eq.{succ u1} M v₂ (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))) b u)))))))))
+ forall {R : Type.{u2}} [_inst_1 : LinearOrderedField.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] {v₁ : M} {v₂ : M}, (SameRay.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 v₁ v₂) -> (Exists.{succ u1} M (fun (u : M) => Exists.{succ u2} R (fun (a : R) => Exists.{succ u2} R (fun (b : R) => And (LE.le.{u2} R (Preorder.toLE.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R (LinearOrderedField.toLinearOrderedCommRing.{u2} R _inst_1)))))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))))) a) (And (LE.le.{u2} R (Preorder.toLE.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R (LinearOrderedField.toLinearOrderedCommRing.{u2} R _inst_1)))))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))))) b) (And (Eq.{succ u2} R (HAdd.hAdd.{u2, u2, u2} R R R (instHAdd.{u2} R (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (DivisionRing.toRing.{u2} R (Field.toDivisionRing.{u2} R (LinearOrderedField.toField.{u2} R _inst_1))))))))) a b) (OfNat.ofNat.{u2} R 1 (One.toOfNat1.{u2} R (Semiring.toOne.{u2} R (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))))))) (And (Eq.{succ u1} M v₁ (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))) a u)) (Eq.{succ u1} M v₂ (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))) b u)))))))))
Case conversion may be inaccurate. Consider using '#align same_ray.exists_eq_smul SameRay.exists_eq_smulₓ'. -/
/-- If vectors `v₁` and `v₂` are on the same ray, then they are nonnegative multiples of the same
vector. Actually, this vector can be assumed to be `v₁ + v₂`, see `same_ray.exists_eq_smul_add`. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/2651125b48fc5c170ab1111afd0817c903b1fc6c
@@ -861,7 +861,7 @@ theorem sameRay_of_mem_orbit {v₁ v₂ : M} (h : v₁ ∈ MulAction.orbit (Unit
lean 3 declaration is
forall {R : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] (u : Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (v : Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3), Eq.{succ u2} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SMul.smul.{u1, u2} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (MulAction.toHasSmul.{u1, u2} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (DivInvMonoid.toMonoid.{u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Group.toDivInvMonoid.{u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Units.group.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))) (Module.Ray.mulAction.{u1, u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Units.group.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Units.distribMulAction.{u1, u2} R M (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)) (Module.toDistribMulAction.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Units.smulCommClass_right.{u1, u1, u2} R R M (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) (smulCommClass_self.{u1, u2} R M (LinearOrderedCommRing.toCommMonoid.{u1} R _inst_1) (MulActionWithZero.toMulAction.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))))) (Inv.inv.{u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Units.hasInv.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) u) v) (SMul.smul.{u1, u2} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (MulAction.toHasSmul.{u1, u2} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (DivInvMonoid.toMonoid.{u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Group.toDivInvMonoid.{u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Units.group.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))) (Module.Ray.mulAction.{u1, u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Units.group.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Units.distribMulAction.{u1, u2} R M (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)) (Module.toDistribMulAction.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Units.smulCommClass_right.{u1, u1, u2} R R M (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) (smulCommClass_self.{u1, u2} R M (LinearOrderedCommRing.toCommMonoid.{u1} R _inst_1) (MulActionWithZero.toMulAction.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))))) u v)
but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : LinearOrderedCommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] (u : Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (v : Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3), Eq.{succ u1} (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (HSMul.hSMul.{u2, u1, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (instHSMul.{u2, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (MulAction.toSMul.{u2, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (DivInvMonoid.toMonoid.{u2} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Group.toDivInvMonoid.{u2} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Units.instGroupUnits.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))))) (instMulActionRayToMonoidToDivInvMonoid.{u2, u1, u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Units.instGroupUnits.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Units.instDistribMulActionUnitsToMonoidToDivInvMonoidInstGroupUnits.{u2, u1} R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))))) (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)) (Module.toDistribMulAction.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)) (Units.smulCommClass_right.{u2, u2, u1} R R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))))) (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u2, u1} R M (AddZeroClass.toZero.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)))) (DistribSMul.toSMulZeroClass.{u2, u1} R M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (DistribMulAction.toDistribSMul.{u2, u1} R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))))) (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)) (Module.toDistribMulAction.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))) (smulCommClass_self.{u2, u1} R M (LinearOrderedCommRing.toCommMonoid.{u2} R _inst_1) (MulActionWithZero.toMulAction.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))))) (Inv.inv.{u2} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Units.instInvUnits.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) u) v) (HSMul.hSMul.{u2, u1, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (instHSMul.{u2, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (MulAction.toSMul.{u2, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (DivInvMonoid.toMonoid.{u2} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Group.toDivInvMonoid.{u2} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Units.instGroupUnits.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))))) (instMulActionRayToMonoidToDivInvMonoid.{u2, u1, u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Units.instGroupUnits.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Units.instDistribMulActionUnitsToMonoidToDivInvMonoidInstGroupUnits.{u2, u1} R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))))) (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)) (Module.toDistribMulAction.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)) (Units.smulCommClass_right.{u2, u2, u1} R R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))))) (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u2, u1} R M (AddZeroClass.toZero.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)))) (DistribSMul.toSMulZeroClass.{u2, u1} R M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (DistribMulAction.toDistribSMul.{u2, u1} R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))))) (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)) (Module.toDistribMulAction.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))) (smulCommClass_self.{u2, u1} R M (LinearOrderedCommRing.toCommMonoid.{u2} R _inst_1) (MulActionWithZero.toMulAction.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))))) u v)
+ forall {R : Type.{u2}} [_inst_1 : LinearOrderedCommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] (u : Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (v : Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3), Eq.{succ u1} (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (HSMul.hSMul.{u2, u1, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (instHSMul.{u2, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (MulAction.toSMul.{u2, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (DivInvMonoid.toMonoid.{u2} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Group.toDivInvMonoid.{u2} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Units.instGroupUnits.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))))) (instMulActionRayToMonoidToDivInvMonoid.{u2, u1, u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Units.instGroupUnits.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Units.instDistribMulActionUnitsToMonoidToDivInvMonoidInstGroupUnits.{u2, u1} R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))))) (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)) (Module.toDistribMulAction.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)) (Units.smulCommClass_right.{u2, u2, u1} R R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))))) (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u2, u1} R M (AddZeroClass.toZero.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)))) (DistribSMul.toSMulZeroClass.{u2, u1} R M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (DistribMulAction.toDistribSMul.{u2, u1} R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))))) (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)) (Module.toDistribMulAction.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))) (smulCommClass_self.{u2, u1} R M (LinearOrderedCommRing.toCommMonoid.{u2} R _inst_1) (MulActionWithZero.toMulAction.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))))) (Inv.inv.{u2} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Units.instInv.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) u) v) (HSMul.hSMul.{u2, u1, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (instHSMul.{u2, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (MulAction.toSMul.{u2, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (DivInvMonoid.toMonoid.{u2} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Group.toDivInvMonoid.{u2} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Units.instGroupUnits.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))))) (instMulActionRayToMonoidToDivInvMonoid.{u2, u1, u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Units.instGroupUnits.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Units.instDistribMulActionUnitsToMonoidToDivInvMonoidInstGroupUnits.{u2, u1} R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))))) (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)) (Module.toDistribMulAction.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)) (Units.smulCommClass_right.{u2, u2, u1} R R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))))) (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u2, u1} R M (AddZeroClass.toZero.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)))) (DistribSMul.toSMulZeroClass.{u2, u1} R M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (DistribMulAction.toDistribSMul.{u2, u1} R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))))) (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)) (Module.toDistribMulAction.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))) (smulCommClass_self.{u2, u1} R M (LinearOrderedCommRing.toCommMonoid.{u2} R _inst_1) (MulActionWithZero.toMulAction.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))))) u v)
Case conversion may be inaccurate. Consider using '#align units_inv_smul units_inv_smulₓ'. -/
/-- Scaling by an inverse unit is the same as scaling by itself. -/
@[simp]
mathlib commit https://github.com/leanprover-community/mathlib/commit/347636a7a80595d55bedf6e6fbd996a3c39da69a
@@ -369,7 +369,7 @@ def RayVector (R M : Type _) [Zero M] :=
lean 3 declaration is
forall {R : Type.{u1}} {M : Type.{u2}} [_inst_7 : Zero.{u2} M], Coe.{succ u2, succ u2} (RayVector.{u1, u2} R M _inst_7) M
but is expected to have type
- forall {R : Type.{u1}} {M : Type.{u2}} {_inst_7 : Zero.{u2} M}, CoeOut.{succ u2, succ u2} (RayVector.{u1, u2} R M _inst_7) M
+ forall {R : Type.{u1}} {M : Type.{u2}} [_inst_7 : Zero.{u2} M], CoeOut.{succ u2, succ u2} (RayVector.{u1, u2} R M _inst_7) M
Case conversion may be inaccurate. Consider using '#align ray_vector.has_coe RayVector.coeₓ'. -/
instance RayVector.coe {R M : Type _} [Zero M] : Coe (RayVector R M) M :=
coeSubtype
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce86f4e05e9a9b8da5e316b22c76ce76440c56a1
@@ -1122,7 +1122,7 @@ theorem exists_nonneg_right (h : SameRay R x y) (hy : y ≠ 0) : ∃ r : R, 0
/- warning: same_ray.exists_eq_smul_add -> SameRay.exists_eq_smul_add is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {v₁ : M} {v₂ : M}, (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 v₁ v₂) -> (Exists.{succ u1} R (fun (a : R) => Exists.{succ u1} R (fun (b : R) => And (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) a) (And (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) b) (And (Eq.{succ u1} R (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toHasAdd.{u1} R (Ring.toDistrib.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))) a b) (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (NonAssocRing.toAddGroupWithOne.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) (And (Eq.{succ u2} M v₁ (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) a (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toHasAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))))) v₁ v₂))) (Eq.{succ u2} M v₂ (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) b (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toHasAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))))) v₁ v₂)))))))))
+ forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {v₁ : M} {v₂ : M}, (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 v₁ v₂) -> (Exists.{succ u1} R (fun (a : R) => Exists.{succ u1} R (fun (b : R) => And (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) a) (And (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) b) (And (Eq.{succ u1} R (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toHasAdd.{u1} R (Ring.toDistrib.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))) a b) (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) (And (Eq.{succ u2} M v₁ (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) a (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toHasAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))))) v₁ v₂))) (Eq.{succ u2} M v₂ (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) b (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toHasAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))))) v₁ v₂)))))))))
but is expected to have type
forall {R : Type.{u2}} [_inst_1 : LinearOrderedField.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] {v₁ : M} {v₂ : M}, (SameRay.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 v₁ v₂) -> (Exists.{succ u2} R (fun (a : R) => Exists.{succ u2} R (fun (b : R) => And (LE.le.{u2} R (Preorder.toLE.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R (LinearOrderedField.toLinearOrderedCommRing.{u2} R _inst_1)))))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))))) a) (And (LE.le.{u2} R (Preorder.toLE.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R (LinearOrderedField.toLinearOrderedCommRing.{u2} R _inst_1)))))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))))) b) (And (Eq.{succ u2} R (HAdd.hAdd.{u2, u2, u2} R R R (instHAdd.{u2} R (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (DivisionRing.toRing.{u2} R (Field.toDivisionRing.{u2} R (LinearOrderedField.toField.{u2} R _inst_1))))))))) a b) (OfNat.ofNat.{u2} R 1 (One.toOfNat1.{u2} R (NonAssocRing.toOne.{u2} R (Ring.toNonAssocRing.{u2} R (DivisionRing.toRing.{u2} R (Field.toDivisionRing.{u2} R (LinearOrderedField.toField.{u2} R _inst_1)))))))) (And (Eq.{succ u1} M v₁ (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))) a (HAdd.hAdd.{u1, u1, u1} M M M (instHAdd.{u1} M (AddZeroClass.toAdd.{u1} M (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_2)))))) v₁ v₂))) (Eq.{succ u1} M v₂ (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))) b (HAdd.hAdd.{u1, u1, u1} M M M (instHAdd.{u1} M (AddZeroClass.toAdd.{u1} M (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_2)))))) v₁ v₂)))))))))
Case conversion may be inaccurate. Consider using '#align same_ray.exists_eq_smul_add SameRay.exists_eq_smul_addₓ'. -/
@@ -1146,7 +1146,7 @@ theorem exists_eq_smul_add (h : SameRay R v₁ v₂) :
/- warning: same_ray.exists_eq_smul -> SameRay.exists_eq_smul is a dubious translation:
lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {v₁ : M} {v₂ : M}, (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 v₁ v₂) -> (Exists.{succ u2} M (fun (u : M) => Exists.{succ u1} R (fun (a : R) => Exists.{succ u1} R (fun (b : R) => And (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) a) (And (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) b) (And (Eq.{succ u1} R (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toHasAdd.{u1} R (Ring.toDistrib.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))) a b) (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (NonAssocRing.toAddGroupWithOne.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) (And (Eq.{succ u2} M v₁ (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) a u)) (Eq.{succ u2} M v₂ (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) b u)))))))))
+ forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {v₁ : M} {v₂ : M}, (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 v₁ v₂) -> (Exists.{succ u2} M (fun (u : M) => Exists.{succ u1} R (fun (a : R) => Exists.{succ u1} R (fun (b : R) => And (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) a) (And (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) b) (And (Eq.{succ u1} R (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toHasAdd.{u1} R (Ring.toDistrib.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))) a b) (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) (And (Eq.{succ u2} M v₁ (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) a u)) (Eq.{succ u2} M v₂ (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) b u)))))))))
but is expected to have type
forall {R : Type.{u2}} [_inst_1 : LinearOrderedField.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] {v₁ : M} {v₂ : M}, (SameRay.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 v₁ v₂) -> (Exists.{succ u1} M (fun (u : M) => Exists.{succ u2} R (fun (a : R) => Exists.{succ u2} R (fun (b : R) => And (LE.le.{u2} R (Preorder.toLE.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R (LinearOrderedField.toLinearOrderedCommRing.{u2} R _inst_1)))))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))))) a) (And (LE.le.{u2} R (Preorder.toLE.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R (LinearOrderedField.toLinearOrderedCommRing.{u2} R _inst_1)))))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))))) b) (And (Eq.{succ u2} R (HAdd.hAdd.{u2, u2, u2} R R R (instHAdd.{u2} R (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (DivisionRing.toRing.{u2} R (Field.toDivisionRing.{u2} R (LinearOrderedField.toField.{u2} R _inst_1))))))))) a b) (OfNat.ofNat.{u2} R 1 (One.toOfNat1.{u2} R (NonAssocRing.toOne.{u2} R (Ring.toNonAssocRing.{u2} R (DivisionRing.toRing.{u2} R (Field.toDivisionRing.{u2} R (LinearOrderedField.toField.{u2} R _inst_1)))))))) (And (Eq.{succ u1} M v₁ (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))) a u)) (Eq.{succ u1} M v₂ (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))) b u)))))))))
Case conversion may be inaccurate. Consider using '#align same_ray.exists_eq_smul SameRay.exists_eq_smulₓ'. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/3180fab693e2cee3bff62675571264cb8778b212
@@ -275,7 +275,7 @@ theorem pos_smul_left {r : R} (h : SameRay R x y) (hr : 0 < r) : SameRay R (r
lean 3 declaration is
forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {N : Type.{u3}} [_inst_4 : AddCommMonoid.{u3} N] [_inst_5 : Module.{u1, u3} R N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_4] {x : M} {y : M} (f : LinearMap.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) M N _inst_2 _inst_4 _inst_3 _inst_5), (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x y) -> (SameRay.{u1, u3} R _inst_1 N _inst_4 _inst_5 (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) M N _inst_2 _inst_4 _inst_3 _inst_5) (fun (_x : LinearMap.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) M N _inst_2 _inst_4 _inst_3 _inst_5) => M -> N) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} R R M N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) f x) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) M N _inst_2 _inst_4 _inst_3 _inst_5) (fun (_x : LinearMap.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) M N _inst_2 _inst_4 _inst_3 _inst_5) => M -> N) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} R R M N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) f y))
but is expected to have type
- forall {R : Type.{u3}} [_inst_1 : StrictOrderedCommSemiring.{u3} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2] {N : Type.{u1}} [_inst_4 : AddCommMonoid.{u1} N] [_inst_5 : Module.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4] {x : M} {y : M} (f : LinearMap.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) M N _inst_2 _inst_4 _inst_3 _inst_5), (SameRay.{u3, u2} R _inst_1 M _inst_2 _inst_3 x y) -> (SameRay.{u3, u1} R _inst_1 ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => N) x) _inst_4 _inst_5 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) M N _inst_2 _inst_4 _inst_3 _inst_5) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => N) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} R R M N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))))) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) M N _inst_2 _inst_4 _inst_3 _inst_5) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => N) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} R R M N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))))) f y))
+ forall {R : Type.{u3}} [_inst_1 : StrictOrderedCommSemiring.{u3} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2] {N : Type.{u1}} [_inst_4 : AddCommMonoid.{u1} N] [_inst_5 : Module.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4] {x : M} {y : M} (f : LinearMap.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) M N _inst_2 _inst_4 _inst_3 _inst_5), (SameRay.{u3, u2} R _inst_1 M _inst_2 _inst_3 x y) -> (SameRay.{u3, u1} R _inst_1 ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => N) x) _inst_4 _inst_5 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) M N _inst_2 _inst_4 _inst_3 _inst_5) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => N) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} R R M N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))))) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) M N _inst_2 _inst_4 _inst_3 _inst_5) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => N) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} R R M N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))))) f y))
Case conversion may be inaccurate. Consider using '#align same_ray.map SameRay.mapₓ'. -/
/-- If two vectors are on the same ray then they remain so after applying a linear map. -/
theorem map (f : M →ₗ[R] N) (h : SameRay R x y) : SameRay R (f x) (f y) :=
@@ -489,7 +489,7 @@ def Module.Ray.map (e : M ≃ₗ[R] N) : Module.Ray R M ≃ Module.Ray R N :=
lean 3 declaration is
forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {N : Type.{u3}} [_inst_4 : AddCommMonoid.{u3} N] [_inst_5 : Module.{u1, u3} R N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_4] (e : LinearEquiv.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) (v : M) (hv : Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))), Eq.{succ u3} (Module.Ray.{u1, u3} R _inst_1 N _inst_4 _inst_5) (coeFn.{max 1 (max (succ u2) (succ u3)) (succ u3) (succ u2), max (succ u2) (succ u3)} (Equiv.{succ u2, succ u3} (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u1, u3} R _inst_1 N _inst_4 _inst_5)) (fun (_x : Equiv.{succ u2, succ u3} (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u1, u3} R _inst_1 N _inst_4 _inst_5)) => (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) -> (Module.Ray.{u1, u3} R _inst_1 N _inst_4 _inst_5)) (Equiv.hasCoeToFun.{succ u2, succ u3} (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u1, u3} R _inst_1 N _inst_4 _inst_5)) (Module.Ray.map.{u1, u2, u3} R _inst_1 M _inst_2 _inst_3 N _inst_4 _inst_5 e) (rayOfNeZero.{u1, u2} R _inst_1 M _inst_2 _inst_3 v hv)) (rayOfNeZero.{u1, u3} R _inst_1 N _inst_4 _inst_5 (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearEquiv.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) (fun (_x : LinearEquiv.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) => M -> N) (LinearEquiv.hasCoeToFun.{u1, u1, u2, u3} R R M N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) e v) (Iff.mpr (Ne.{succ u3} N (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearEquiv.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) (fun (_x : LinearEquiv.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) => M -> N) (LinearEquiv.hasCoeToFun.{u1, u1, u2, u3} R R M N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) e v) (OfNat.ofNat.{u3} N 0 (OfNat.mk.{u3} N 0 (Zero.zero.{u3} N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N (AddCommMonoid.toAddMonoid.{u3} N _inst_4))))))) (Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))) (LinearEquiv.map_ne_zero_iff.{u1, u1, u2, u3} R R M N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) e v) hv))
but is expected to have type
- forall {R : Type.{u3}} [_inst_1 : StrictOrderedCommSemiring.{u3} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2] {N : Type.{u1}} [_inst_4 : AddCommMonoid.{u1} N] [_inst_5 : Module.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4] (e : LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) (v : M) (hv : Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))), Eq.{succ u1} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Module.Ray.{u3, u2} R _inst_1 M _inst_2 _inst_3) => Module.Ray.{u3, u1} R _inst_1 N _inst_4 _inst_5) (rayOfNeZero.{u3, u2} R _inst_1 M _inst_2 _inst_3 v hv)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Equiv.{succ u2, succ u1} (Module.Ray.{u3, u2} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u3, u1} R _inst_1 N _inst_4 _inst_5)) (Module.Ray.{u3, u2} R _inst_1 M _inst_2 _inst_3) (fun (_x : Module.Ray.{u3, u2} R _inst_1 M _inst_2 _inst_3) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Module.Ray.{u3, u2} R _inst_1 M _inst_2 _inst_3) => Module.Ray.{u3, u1} R _inst_1 N _inst_4 _inst_5) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} (Module.Ray.{u3, u2} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u3, u1} R _inst_1 N _inst_4 _inst_5)) (Module.Ray.map.{u3, u2, u1} R _inst_1 M _inst_2 _inst_3 N _inst_4 _inst_5 e) (rayOfNeZero.{u3, u2} R _inst_1 M _inst_2 _inst_3 v hv)) (rayOfNeZero.{u3, u1} R _inst_1 ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M) => N) v) _inst_4 _inst_5 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M) => N) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) R M N (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u3, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u3, u2} R M (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_3)))) (SMulZeroClass.toSMul.{u3, u1} R N (AddMonoid.toZero.{u1} N (AddCommMonoid.toAddMonoid.{u1} N _inst_4)) (DistribSMul.toSMulZeroClass.{u3, u1} R N (AddMonoid.toAddZeroClass.{u1} N (AddCommMonoid.toAddMonoid.{u1} N _inst_4)) (DistribMulAction.toDistribSMul.{u3, u1} R N (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} N _inst_4) (Module.toDistribMulAction.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4 _inst_5)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) R M N (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (AddCommMonoid.toAddMonoid.{u1} N _inst_4) (Module.toDistribMulAction.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_3) (Module.toDistribMulAction.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4 _inst_5) (SemilinearMapClass.distribMulActionHomClass.{u3, u2, u1, max u2 u1} R M N (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (SemilinearEquivClass.instSemilinearMapClass.{u3, u3, u2, u1, max u2 u1} R R M N (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u3, u3, u2, u1} R R M N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))))))) e v) (Iff.mpr (Ne.{succ u1} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : M) => N) v) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) M (fun (_x : M) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : M) => N) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) M N (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) M N (AddEquivClass.toEquivLike.{max u2 u1, u2, u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) M N (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (AddZeroClass.toAdd.{u1} N (AddMonoid.toAddZeroClass.{u1} N (AddCommMonoid.toAddMonoid.{u1} N _inst_4))) (SemilinearEquivClass.toAddEquivClass.{max u2 u1, u3, u3, u2, u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5 (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u3, u3, u2, u1} R R M N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))))))) e v) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : M) => N) v) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : M) => N) v) (AddMonoid.toZero.{u1} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : M) => N) v) (AddCommMonoid.toAddMonoid.{u1} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : M) => N) v) _inst_4))))) (Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))) (LinearEquiv.map_ne_zero_iff.{u3, u3, u2, u1} R R M N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) e v) hv))
+ forall {R : Type.{u3}} [_inst_1 : StrictOrderedCommSemiring.{u3} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2] {N : Type.{u1}} [_inst_4 : AddCommMonoid.{u1} N] [_inst_5 : Module.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4] (e : LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) (v : M) (hv : Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))), Eq.{succ u1} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Module.Ray.{u3, u2} R _inst_1 M _inst_2 _inst_3) => Module.Ray.{u3, u1} R _inst_1 N _inst_4 _inst_5) (rayOfNeZero.{u3, u2} R _inst_1 M _inst_2 _inst_3 v hv)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Equiv.{succ u2, succ u1} (Module.Ray.{u3, u2} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u3, u1} R _inst_1 N _inst_4 _inst_5)) (Module.Ray.{u3, u2} R _inst_1 M _inst_2 _inst_3) (fun (_x : Module.Ray.{u3, u2} R _inst_1 M _inst_2 _inst_3) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Module.Ray.{u3, u2} R _inst_1 M _inst_2 _inst_3) => Module.Ray.{u3, u1} R _inst_1 N _inst_4 _inst_5) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} (Module.Ray.{u3, u2} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u3, u1} R _inst_1 N _inst_4 _inst_5)) (Module.Ray.map.{u3, u2, u1} R _inst_1 M _inst_2 _inst_3 N _inst_4 _inst_5 e) (rayOfNeZero.{u3, u2} R _inst_1 M _inst_2 _inst_3 v hv)) (rayOfNeZero.{u3, u1} R _inst_1 ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M) => N) v) _inst_4 _inst_5 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M) => N) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) R M N (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u3, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u3, u2} R M (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_3)))) (SMulZeroClass.toSMul.{u3, u1} R N (AddMonoid.toZero.{u1} N (AddCommMonoid.toAddMonoid.{u1} N _inst_4)) (DistribSMul.toSMulZeroClass.{u3, u1} R N (AddMonoid.toAddZeroClass.{u1} N (AddCommMonoid.toAddMonoid.{u1} N _inst_4)) (DistribMulAction.toDistribSMul.{u3, u1} R N (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} N _inst_4) (Module.toDistribMulAction.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4 _inst_5)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) R M N (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (AddCommMonoid.toAddMonoid.{u1} N _inst_4) (Module.toDistribMulAction.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_3) (Module.toDistribMulAction.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4 _inst_5) (SemilinearMapClass.distribMulActionHomClass.{u3, u2, u1, max u2 u1} R M N (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (SemilinearEquivClass.instSemilinearMapClass.{u3, u3, u2, u1, max u2 u1} R R M N (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u3, u3, u2, u1} R R M N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))))))) e v) (Iff.mpr (Ne.{succ u1} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : M) => N) v) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) M (fun (_x : M) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : M) => N) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) M N (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) M N (AddEquivClass.toEquivLike.{max u2 u1, u2, u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) M N (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (AddZeroClass.toAdd.{u1} N (AddMonoid.toAddZeroClass.{u1} N (AddCommMonoid.toAddMonoid.{u1} N _inst_4))) (SemilinearEquivClass.toAddEquivClass.{max u2 u1, u3, u3, u2, u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5 (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u3, u3, u2, u1} R R M N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))))))) e v) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : M) => N) v) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : M) => N) v) (AddMonoid.toZero.{u1} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : M) => N) v) (AddCommMonoid.toAddMonoid.{u1} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : M) => N) v) _inst_4))))) (Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))) (LinearEquiv.map_ne_zero_iff.{u3, u3, u2, u1} R R M N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) e v) hv))
Case conversion may be inaccurate. Consider using '#align module.ray.map_apply Module.Ray.map_applyₓ'. -/
@[simp]
theorem Module.Ray.map_apply (e : M ≃ₗ[R] N) (v : M) (hv : v ≠ 0) :
@@ -541,7 +541,7 @@ instance : MulAction G (Module.Ray R M)
lean 3 declaration is
forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] (e : LinearEquiv.{u1, u1, u2, u2} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (v : Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3), Eq.{succ u2} (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (SMul.smul.{u2, u2} (LinearEquiv.{u1, u1, u2, u2} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (MulAction.toHasSmul.{u2, u2} (LinearEquiv.{u1, u1, u2, u2} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (DivInvMonoid.toMonoid.{u2} (LinearEquiv.{u1, u1, u2, u2} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (Group.toDivInvMonoid.{u2} (LinearEquiv.{u1, u1, u2, u2} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (LinearEquiv.automorphismGroup.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3))) (Module.Ray.mulAction.{u1, u2, u2} R _inst_1 M _inst_2 _inst_3 (LinearEquiv.{u1, u1, u2, u2} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (LinearEquiv.automorphismGroup.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3) (LinearEquiv.applyDistribMulAction.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3) (LinearEquiv.apply_smulCommClass.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3))) e v) (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3)) (fun (_x : Equiv.{succ u2, succ u2} (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3)) => (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) -> (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3)) (Equiv.hasCoeToFun.{succ u2, succ u2} (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3)) (Module.Ray.map.{u1, u2, u2} R _inst_1 M _inst_2 _inst_3 M _inst_2 _inst_3 e) v)
but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] (e : LinearEquiv.{u2, u2, u1, u1} R R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (v : Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3), Eq.{succ u1} (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (HSMul.hSMul.{u1, u1, u1} (LinearEquiv.{u2, u2, u1, u1} R R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (instHSMul.{u1, u1} (LinearEquiv.{u2, u2, u1, u1} R R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (MulAction.toSMul.{u1, u1} (LinearEquiv.{u2, u2, u1, u1} R R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (DivInvMonoid.toMonoid.{u1} (LinearEquiv.{u2, u2, u1, u1} R R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (Group.toDivInvMonoid.{u1} (LinearEquiv.{u2, u2, u1, u1} R R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (LinearEquiv.automorphismGroup.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3))) (instMulActionRayToMonoidToDivInvMonoid.{u2, u1, u1} R _inst_1 M _inst_2 _inst_3 (LinearEquiv.{u2, u2, u1, u1} R R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (LinearEquiv.automorphismGroup.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3) (LinearEquiv.applyDistribMulAction.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3) (LinearEquiv.apply_smulCommClass.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3)))) e v) (FunLike.coe.{succ u1, succ u1, succ u1} (Equiv.{succ u1, succ u1} (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3)) (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (fun (_x : Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) => Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u1} (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3)) (Module.Ray.map.{u2, u1, u1} R _inst_1 M _inst_2 _inst_3 M _inst_2 _inst_3 e) v)
+ forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] (e : LinearEquiv.{u2, u2, u1, u1} R R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (v : Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3), Eq.{succ u1} (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (HSMul.hSMul.{u1, u1, u1} (LinearEquiv.{u2, u2, u1, u1} R R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (instHSMul.{u1, u1} (LinearEquiv.{u2, u2, u1, u1} R R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (MulAction.toSMul.{u1, u1} (LinearEquiv.{u2, u2, u1, u1} R R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (DivInvMonoid.toMonoid.{u1} (LinearEquiv.{u2, u2, u1, u1} R R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (Group.toDivInvMonoid.{u1} (LinearEquiv.{u2, u2, u1, u1} R R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (LinearEquiv.automorphismGroup.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3))) (instMulActionRayToMonoidToDivInvMonoid.{u2, u1, u1} R _inst_1 M _inst_2 _inst_3 (LinearEquiv.{u2, u2, u1, u1} R R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (LinearEquiv.automorphismGroup.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3) (LinearEquiv.applyDistribMulAction.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3) (LinearEquiv.apply_smulCommClass.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3)))) e v) (FunLike.coe.{succ u1, succ u1, succ u1} (Equiv.{succ u1, succ u1} (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3)) (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (fun (_x : Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) => Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u1} (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3)) (Module.Ray.map.{u2, u1, u1} R _inst_1 M _inst_2 _inst_3 M _inst_2 _inst_3 e) v)
Case conversion may be inaccurate. Consider using '#align module.ray.linear_equiv_smul_eq_map Module.Ray.linearEquiv_smul_eq_mapₓ'. -/
/-- The action via `linear_equiv.apply_distrib_mul_action` corresponds to `module.ray.map`. -/
@[simp]
@@ -824,7 +824,7 @@ theorem units_smul_of_neg (u : Rˣ) (hu : (u : R) < 0) (v : Module.Ray R M) : u
lean 3 declaration is
forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u1} R] {M : Type.{u2}} {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : AddCommGroup.{u3} N] [_inst_4 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u3} N _inst_3)] (f : LinearEquiv.{u1, u1, u2, u3} R R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_3) _inst_4 _inst_5) (v : Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4), Eq.{succ u3} (Module.Ray.{u1, u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u3} N _inst_3) _inst_5) (coeFn.{max 1 (max (succ u2) (succ u3)) (succ u3) (succ u2), max (succ u2) (succ u3)} (Equiv.{succ u2, succ u3} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Module.Ray.{u1, u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u3} N _inst_3) _inst_5)) (fun (_x : Equiv.{succ u2, succ u3} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Module.Ray.{u1, u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u3} N _inst_3) _inst_5)) => (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) -> (Module.Ray.{u1, u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u3} N _inst_3) _inst_5)) (Equiv.hasCoeToFun.{succ u2, succ u3} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Module.Ray.{u1, u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u3} N _inst_3) _inst_5)) (Module.Ray.map.{u1, u2, u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4 N (AddCommGroup.toAddCommMonoid.{u3} N _inst_3) _inst_5 f) (Neg.neg.{u2} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Module.Ray.hasNeg.{u1, u2} R _inst_1 M _inst_2 _inst_4) v)) (Neg.neg.{u3} (Module.Ray.{u1, u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u3} N _inst_3) _inst_5) (Module.Ray.hasNeg.{u1, u3} R _inst_1 N _inst_3 _inst_5) (coeFn.{max 1 (max (succ u2) (succ u3)) (succ u3) (succ u2), max (succ u2) (succ u3)} (Equiv.{succ u2, succ u3} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Module.Ray.{u1, u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u3} N _inst_3) _inst_5)) (fun (_x : Equiv.{succ u2, succ u3} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Module.Ray.{u1, u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u3} N _inst_3) _inst_5)) => (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) -> (Module.Ray.{u1, u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u3} N _inst_3) _inst_5)) (Equiv.hasCoeToFun.{succ u2, succ u3} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Module.Ray.{u1, u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u3} N _inst_3) _inst_5)) (Module.Ray.map.{u1, u2, u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4 N (AddCommGroup.toAddCommMonoid.{u3} N _inst_3) _inst_5 f) v))
but is expected to have type
- forall {R : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u3} R] {M : Type.{u2}} {N : Type.{u1}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : AddCommGroup.{u1} N] [_inst_4 : Module.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_5 : Module.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} N _inst_3)] (f : LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1)))) M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_4 _inst_5) (v : Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4), Eq.{succ u1} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) => Module.Ray.{u3, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_5) (Neg.neg.{u2} (Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (instNegRayToStrictOrderedCommSemiringToAddCommMonoid.{u3, u2} R _inst_1 M _inst_2 _inst_4) v)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Equiv.{succ u2, succ u1} (Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Module.Ray.{u3, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_5)) (Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (fun (_x : Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) => Module.Ray.{u3, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_5) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} (Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Module.Ray.{u3, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_5)) (Module.Ray.map.{u3, u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4 N (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_5 f) (Neg.neg.{u2} (Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (instNegRayToStrictOrderedCommSemiringToAddCommMonoid.{u3, u2} R _inst_1 M _inst_2 _inst_4) v)) (Neg.neg.{u1} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) => Module.Ray.{u3, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_5) v) (instNegRayToStrictOrderedCommSemiringToAddCommMonoid.{u3, u1} R _inst_1 N _inst_3 _inst_5) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Equiv.{succ u2, succ u1} (Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Module.Ray.{u3, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_5)) (Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (fun (_x : Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) => Module.Ray.{u3, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_5) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} (Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Module.Ray.{u3, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_5)) (Module.Ray.map.{u3, u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4 N (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_5 f) v))
+ forall {R : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u3} R] {M : Type.{u2}} {N : Type.{u1}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : AddCommGroup.{u1} N] [_inst_4 : Module.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_5 : Module.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} N _inst_3)] (f : LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1)))) M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_4 _inst_5) (v : Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4), Eq.{succ u1} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) => Module.Ray.{u3, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_5) (Neg.neg.{u2} (Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (instNegRayToStrictOrderedCommSemiringToAddCommMonoid.{u3, u2} R _inst_1 M _inst_2 _inst_4) v)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Equiv.{succ u2, succ u1} (Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Module.Ray.{u3, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_5)) (Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (fun (_x : Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) => Module.Ray.{u3, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_5) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} (Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Module.Ray.{u3, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_5)) (Module.Ray.map.{u3, u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4 N (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_5 f) (Neg.neg.{u2} (Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (instNegRayToStrictOrderedCommSemiringToAddCommMonoid.{u3, u2} R _inst_1 M _inst_2 _inst_4) v)) (Neg.neg.{u1} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) => Module.Ray.{u3, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_5) v) (instNegRayToStrictOrderedCommSemiringToAddCommMonoid.{u3, u1} R _inst_1 N _inst_3 _inst_5) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Equiv.{succ u2, succ u1} (Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Module.Ray.{u3, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_5)) (Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (fun (_x : Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) => Module.Ray.{u3, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_5) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} (Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Module.Ray.{u3, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_5)) (Module.Ray.map.{u3, u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4 N (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_5 f) v))
Case conversion may be inaccurate. Consider using '#align module.ray.map_neg Module.Ray.map_negₓ'. -/
@[simp]
protected theorem map_neg (f : M ≃ₗ[R] N) (v : Module.Ray R M) : map f (-v) = -map f v :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/195fcd60ff2bfe392543bceb0ec2adcdb472db4c
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Joseph Myers
! This file was ported from Lean 3 source module linear_algebra.ray
-! leanprover-community/mathlib commit 0f6670b8af2dff699de1c0b4b49039b31bc13c46
+! leanprover-community/mathlib commit ee05e9ce1322178f0c12004eb93c00d2c8c00ed2
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -14,6 +14,9 @@ import Mathbin.LinearAlgebra.LinearIndependent
/-!
# Rays in modules
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
This file defines rays in modules.
## Main definitions
mathlib commit https://github.com/leanprover-community/mathlib/commit/eb0cb4511aaef0da2462207b67358a0e1fe1e2ee
@@ -40,12 +40,14 @@ variable {N : Type _} [AddCommMonoid N] [Module R N]
variable (ι : Type _) [DecidableEq ι]
+#print SameRay /-
/-- Two vectors are in the same ray if either one of them is zero or some positive multiples of them
are equal (in the typical case over a field, this means one of them is a nonnegative multiple of
the other). -/
def SameRay (v₁ v₂ : M) : Prop :=
v₁ = 0 ∨ v₂ = 0 ∨ ∃ r₁ r₂ : R, 0 < r₁ ∧ 0 < r₂ ∧ r₁ • v₁ = r₂ • v₂
#align same_ray SameRay
+-/
variable {R}
@@ -53,29 +55,55 @@ namespace SameRay
variable {x y z : M}
+/- warning: same_ray.zero_left -> SameRay.zero_left is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] (y : M), SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))))) y
+but is expected to have type
+ forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] (y : M), SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)))) y
+Case conversion may be inaccurate. Consider using '#align same_ray.zero_left SameRay.zero_leftₓ'. -/
@[simp]
theorem zero_left (y : M) : SameRay R 0 y :=
Or.inl rfl
#align same_ray.zero_left SameRay.zero_left
+/- warning: same_ray.zero_right -> SameRay.zero_right is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] (x : M), SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))
+but is expected to have type
+ forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] (x : M), SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 x (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2))))
+Case conversion may be inaccurate. Consider using '#align same_ray.zero_right SameRay.zero_rightₓ'. -/
@[simp]
theorem zero_right (x : M) : SameRay R x 0 :=
Or.inr <| Or.inl rfl
#align same_ray.zero_right SameRay.zero_right
+#print SameRay.of_subsingleton /-
@[nontriviality]
theorem of_subsingleton [Subsingleton M] (x y : M) : SameRay R x y :=
by
rw [Subsingleton.elim x 0]
exact zero_left _
#align same_ray.of_subsingleton SameRay.of_subsingleton
+-/
+/- warning: same_ray.of_subsingleton' -> SameRay.of_subsingleton' is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] [_inst_7 : Subsingleton.{succ u1} R] (x : M) (y : M), SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x y
+but is expected to have type
+ forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] [_inst_7 : Subsingleton.{succ u2} R] (x : M) (y : M), SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 x y
+Case conversion may be inaccurate. Consider using '#align same_ray.of_subsingleton' SameRay.of_subsingleton'ₓ'. -/
@[nontriviality]
theorem of_subsingleton' [Subsingleton R] (x y : M) : SameRay R x y :=
haveI := Module.subsingleton R M
of_subsingleton x y
#align same_ray.of_subsingleton' SameRay.of_subsingleton'
+/- warning: same_ray.refl -> SameRay.refl is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] (x : M), SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x x
+but is expected to have type
+ forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] (x : M), SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 x x
+Case conversion may be inaccurate. Consider using '#align same_ray.refl SameRay.reflₓ'. -/
/-- `same_ray` is reflexive. -/
@[refl]
theorem refl (x : M) : SameRay R x x := by
@@ -83,16 +111,34 @@ theorem refl (x : M) : SameRay R x x := by
exact Or.inr (Or.inr <| ⟨1, 1, zero_lt_one, zero_lt_one, rfl⟩)
#align same_ray.refl SameRay.refl
+/- warning: same_ray.rfl -> SameRay.rfl is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {x : M}, SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x x
+but is expected to have type
+ forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] {x : M}, SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 x x
+Case conversion may be inaccurate. Consider using '#align same_ray.rfl SameRay.rflₓ'. -/
protected theorem rfl : SameRay R x x :=
refl _
#align same_ray.rfl SameRay.rfl
+/- warning: same_ray.symm -> SameRay.symm is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {x : M} {y : M}, (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x y) -> (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 y x)
+but is expected to have type
+ forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] {x : M} {y : M}, (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 x y) -> (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 y x)
+Case conversion may be inaccurate. Consider using '#align same_ray.symm SameRay.symmₓ'. -/
/-- `same_ray` is symmetric. -/
@[symm]
theorem symm (h : SameRay R x y) : SameRay R y x :=
(or_left_comm.1 h).imp_right <| Or.imp_right fun ⟨r₁, r₂, h₁, h₂, h⟩ => ⟨r₂, r₁, h₂, h₁, h.symm⟩
#align same_ray.symm SameRay.symm
+/- warning: same_ray.exists_pos -> SameRay.exists_pos is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {x : M} {y : M}, (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x y) -> (Ne.{succ u2} M x (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))) -> (Ne.{succ u2} M y (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))) -> (Exists.{succ u1} R (fun (r₁ : R) => Exists.{succ u1} R (fun (r₂ : R) => And (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedCancelAddCommMonoid.toPartialOrder.{u1} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))))))) r₁) (And (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedCancelAddCommMonoid.toPartialOrder.{u1} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))))))) r₂) (Eq.{succ u2} M (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) r₁ x) (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) r₂ y))))))
+but is expected to have type
+ forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] {x : M} {y : M}, (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 x y) -> (Ne.{succ u1} M x (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2))))) -> (Ne.{succ u1} M y (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2))))) -> (Exists.{succ u2} R (fun (r₁ : R) => Exists.{succ u2} R (fun (r₂ : R) => And (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedSemiring.toPartialOrder.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))))) r₁) (And (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedSemiring.toPartialOrder.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))))) r₂) (Eq.{succ u1} M (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3))))) r₁ x) (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3))))) r₂ y))))))
+Case conversion may be inaccurate. Consider using '#align same_ray.exists_pos SameRay.exists_posₓ'. -/
/-- If `x` and `y` are nonzero vectors on the same ray, then there exist positive numbers `r₁ r₂`
such that `r₁ • x = r₂ • y`. -/
theorem exists_pos (h : SameRay R x y) (hx : x ≠ 0) (hy : y ≠ 0) :
@@ -100,10 +146,22 @@ theorem exists_pos (h : SameRay R x y) (hx : x ≠ 0) (hy : y ≠ 0) :
(h.resolve_left hx).resolve_left hy
#align same_ray.exists_pos SameRay.exists_pos
-theorem sameRay_comm : SameRay R x y ↔ SameRay R y x :=
+/- warning: same_ray_comm -> SameRay.sameRay_comm is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {x : M} {y : M}, Iff (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x y) (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 y x)
+but is expected to have type
+ forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] {x : M} {y : M}, Iff (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 x y) (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 y x)
+Case conversion may be inaccurate. Consider using '#align same_ray_comm SameRay.sameRay_commₓ'. -/
+theorem SameRay.sameRay_comm : SameRay R x y ↔ SameRay R y x :=
⟨SameRay.symm, SameRay.symm⟩
-#align same_ray_comm sameRay_comm
-
+#align same_ray_comm SameRay.sameRay_comm
+
+/- warning: same_ray.trans -> SameRay.trans is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {x : M} {y : M} {z : M}, (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x y) -> (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 y z) -> ((Eq.{succ u2} M y (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))) -> (Or (Eq.{succ u2} M x (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))) (Eq.{succ u2} M z (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))))) -> (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x z)
+but is expected to have type
+ forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] {x : M} {y : M} {z : M}, (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 x y) -> (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 y z) -> ((Eq.{succ u1} M y (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2))))) -> (Or (Eq.{succ u1} M x (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2))))) (Eq.{succ u1} M z (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2))))))) -> (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 x z)
+Case conversion may be inaccurate. Consider using '#align same_ray.trans SameRay.transₓ'. -/
/-- `same_ray` is transitive unless the vector in the middle is zero and both other vectors are
nonzero. -/
theorem trans (hxy : SameRay R x y) (hyz : SameRay R y z) (hy : y = 0 → x = 0 ∨ z = 0) :
@@ -118,50 +176,104 @@ theorem trans (hxy : SameRay R x y) (hyz : SameRay R y z) (hy : y = 0 → x = 0
rw [mul_smul, mul_smul, h₁, ← h₂, smul_comm]
#align same_ray.trans SameRay.trans
+/- warning: same_ray_nonneg_smul_right -> SameRay.sameRay_nonneg_smul_right is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] (v : M) {r : R}, (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedCancelAddCommMonoid.toPartialOrder.{u1} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))))))) r) -> (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 v (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) r v))
+but is expected to have type
+ forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] (v : M) {r : R}, (LE.le.{u2} R (Preorder.toLE.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedSemiring.toPartialOrder.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))))) r) -> (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 v (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3))))) r v))
+Case conversion may be inaccurate. Consider using '#align same_ray_nonneg_smul_right SameRay.sameRay_nonneg_smul_rightₓ'. -/
/-- A vector is in the same ray as a nonnegative multiple of itself. -/
-theorem sameRay_nonneg_smul_right (v : M) {r : R} (h : 0 ≤ r) : SameRay R v (r • v) :=
+theorem SameRay.sameRay_nonneg_smul_right (v : M) {r : R} (h : 0 ≤ r) : SameRay R v (r • v) :=
Or.inr <|
h.eq_or_lt.imp (fun h => h ▸ zero_smul R v) fun h =>
⟨r, 1, h, by
nontriviality R
exact zero_lt_one, (one_smul _ _).symm⟩
-#align same_ray_nonneg_smul_right sameRay_nonneg_smul_right
-
+#align same_ray_nonneg_smul_right SameRay.sameRay_nonneg_smul_right
+
+/- warning: same_ray_pos_smul_right -> SameRay.sameRay_pos_smul_right is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] (v : M) {r : R}, (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedCancelAddCommMonoid.toPartialOrder.{u1} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))))))) r) -> (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 v (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) r v))
+but is expected to have type
+ forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] (v : M) {r : R}, (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedSemiring.toPartialOrder.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))))) r) -> (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 v (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3))))) r v))
+Case conversion may be inaccurate. Consider using '#align same_ray_pos_smul_right SameRay.sameRay_pos_smul_rightₓ'. -/
/-- A vector is in the same ray as a positive multiple of itself. -/
-theorem sameRay_pos_smul_right (v : M) {r : R} (h : 0 < r) : SameRay R v (r • v) :=
- sameRay_nonneg_smul_right v h.le
-#align same_ray_pos_smul_right sameRay_pos_smul_right
-
+theorem SameRay.sameRay_pos_smul_right (v : M) {r : R} (h : 0 < r) : SameRay R v (r • v) :=
+ SameRay.sameRay_nonneg_smul_right v h.le
+#align same_ray_pos_smul_right SameRay.sameRay_pos_smul_right
+
+/- warning: same_ray.nonneg_smul_right -> SameRay.nonneg_smul_right is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {x : M} {y : M} {r : R}, (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x y) -> (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedCancelAddCommMonoid.toPartialOrder.{u1} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))))))) r) -> (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) r y))
+but is expected to have type
+ forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] {x : M} {y : M} {r : R}, (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 x y) -> (LE.le.{u2} R (Preorder.toLE.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedSemiring.toPartialOrder.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))))) r) -> (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 x (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3))))) r y))
+Case conversion may be inaccurate. Consider using '#align same_ray.nonneg_smul_right SameRay.nonneg_smul_rightₓ'. -/
/-- A vector is in the same ray as a nonnegative multiple of one it is in the same ray as. -/
theorem nonneg_smul_right {r : R} (h : SameRay R x y) (hr : 0 ≤ r) : SameRay R x (r • y) :=
- h.trans (sameRay_nonneg_smul_right y hr) fun hy => Or.inr <| by rw [hy, smul_zero]
+ h.trans (SameRay.sameRay_nonneg_smul_right y hr) fun hy => Or.inr <| by rw [hy, smul_zero]
#align same_ray.nonneg_smul_right SameRay.nonneg_smul_right
+/- warning: same_ray.pos_smul_right -> SameRay.pos_smul_right is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {x : M} {y : M} {r : R}, (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x y) -> (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedCancelAddCommMonoid.toPartialOrder.{u1} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))))))) r) -> (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) r y))
+but is expected to have type
+ forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] {x : M} {y : M} {r : R}, (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 x y) -> (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedSemiring.toPartialOrder.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))))) r) -> (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 x (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3))))) r y))
+Case conversion may be inaccurate. Consider using '#align same_ray.pos_smul_right SameRay.pos_smul_rightₓ'. -/
/-- A vector is in the same ray as a positive multiple of one it is in the same ray as. -/
theorem pos_smul_right {r : R} (h : SameRay R x y) (hr : 0 < r) : SameRay R x (r • y) :=
h.nonneg_smul_right hr.le
#align same_ray.pos_smul_right SameRay.pos_smul_right
+/- warning: same_ray_nonneg_smul_left -> SameRay.sameRay_nonneg_smul_left is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] (v : M) {r : R}, (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedCancelAddCommMonoid.toPartialOrder.{u1} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))))))) r) -> (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) r v) v)
+but is expected to have type
+ forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] (v : M) {r : R}, (LE.le.{u2} R (Preorder.toLE.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedSemiring.toPartialOrder.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))))) r) -> (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3))))) r v) v)
+Case conversion may be inaccurate. Consider using '#align same_ray_nonneg_smul_left SameRay.sameRay_nonneg_smul_leftₓ'. -/
/-- A nonnegative multiple of a vector is in the same ray as that vector. -/
-theorem sameRay_nonneg_smul_left (v : M) {r : R} (h : 0 ≤ r) : SameRay R (r • v) v :=
- (sameRay_nonneg_smul_right v h).symm
-#align same_ray_nonneg_smul_left sameRay_nonneg_smul_left
-
+theorem SameRay.sameRay_nonneg_smul_left (v : M) {r : R} (h : 0 ≤ r) : SameRay R (r • v) v :=
+ (SameRay.sameRay_nonneg_smul_right v h).symm
+#align same_ray_nonneg_smul_left SameRay.sameRay_nonneg_smul_left
+
+/- warning: same_ray_pos_smul_left -> SameRay.sameRay_pos_smul_left is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] (v : M) {r : R}, (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedCancelAddCommMonoid.toPartialOrder.{u1} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))))))) r) -> (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) r v) v)
+but is expected to have type
+ forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] (v : M) {r : R}, (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedSemiring.toPartialOrder.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))))) r) -> (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3))))) r v) v)
+Case conversion may be inaccurate. Consider using '#align same_ray_pos_smul_left SameRay.sameRay_pos_smul_leftₓ'. -/
/-- A positive multiple of a vector is in the same ray as that vector. -/
-theorem sameRay_pos_smul_left (v : M) {r : R} (h : 0 < r) : SameRay R (r • v) v :=
- sameRay_nonneg_smul_left v h.le
-#align same_ray_pos_smul_left sameRay_pos_smul_left
-
+theorem SameRay.sameRay_pos_smul_left (v : M) {r : R} (h : 0 < r) : SameRay R (r • v) v :=
+ SameRay.sameRay_nonneg_smul_left v h.le
+#align same_ray_pos_smul_left SameRay.sameRay_pos_smul_left
+
+/- warning: same_ray.nonneg_smul_left -> SameRay.nonneg_smul_left is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {x : M} {y : M} {r : R}, (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x y) -> (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedCancelAddCommMonoid.toPartialOrder.{u1} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))))))) r) -> (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) r x) y)
+but is expected to have type
+ forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] {x : M} {y : M} {r : R}, (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 x y) -> (LE.le.{u2} R (Preorder.toLE.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedSemiring.toPartialOrder.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))))) r) -> (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3))))) r x) y)
+Case conversion may be inaccurate. Consider using '#align same_ray.nonneg_smul_left SameRay.nonneg_smul_leftₓ'. -/
/-- A nonnegative multiple of a vector is in the same ray as one it is in the same ray as. -/
theorem nonneg_smul_left {r : R} (h : SameRay R x y) (hr : 0 ≤ r) : SameRay R (r • x) y :=
(h.symm.nonneg_smul_right hr).symm
#align same_ray.nonneg_smul_left SameRay.nonneg_smul_left
+/- warning: same_ray.pos_smul_left -> SameRay.pos_smul_left is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {x : M} {y : M} {r : R}, (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x y) -> (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedCancelAddCommMonoid.toPartialOrder.{u1} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))))))) r) -> (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) r x) y)
+but is expected to have type
+ forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] {x : M} {y : M} {r : R}, (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 x y) -> (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedSemiring.toPartialOrder.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))))) r) -> (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3))))) r x) y)
+Case conversion may be inaccurate. Consider using '#align same_ray.pos_smul_left SameRay.pos_smul_leftₓ'. -/
/-- A positive multiple of a vector is in the same ray as one it is in the same ray as. -/
theorem pos_smul_left {r : R} (h : SameRay R x y) (hr : 0 < r) : SameRay R (r • x) y :=
h.nonneg_smul_left hr.le
#align same_ray.pos_smul_left SameRay.pos_smul_left
+/- warning: same_ray.map -> SameRay.map is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {N : Type.{u3}} [_inst_4 : AddCommMonoid.{u3} N] [_inst_5 : Module.{u1, u3} R N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_4] {x : M} {y : M} (f : LinearMap.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) M N _inst_2 _inst_4 _inst_3 _inst_5), (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x y) -> (SameRay.{u1, u3} R _inst_1 N _inst_4 _inst_5 (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) M N _inst_2 _inst_4 _inst_3 _inst_5) (fun (_x : LinearMap.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) M N _inst_2 _inst_4 _inst_3 _inst_5) => M -> N) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} R R M N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) f x) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) M N _inst_2 _inst_4 _inst_3 _inst_5) (fun (_x : LinearMap.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) M N _inst_2 _inst_4 _inst_3 _inst_5) => M -> N) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} R R M N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) f y))
+but is expected to have type
+ forall {R : Type.{u3}} [_inst_1 : StrictOrderedCommSemiring.{u3} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2] {N : Type.{u1}} [_inst_4 : AddCommMonoid.{u1} N] [_inst_5 : Module.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4] {x : M} {y : M} (f : LinearMap.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) M N _inst_2 _inst_4 _inst_3 _inst_5), (SameRay.{u3, u2} R _inst_1 M _inst_2 _inst_3 x y) -> (SameRay.{u3, u1} R _inst_1 ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => N) x) _inst_4 _inst_5 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) M N _inst_2 _inst_4 _inst_3 _inst_5) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => N) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} R R M N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))))) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) M N _inst_2 _inst_4 _inst_3 _inst_5) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => N) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} R R M N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))))) f y))
+Case conversion may be inaccurate. Consider using '#align same_ray.map SameRay.mapₓ'. -/
/-- If two vectors are on the same ray then they remain so after applying a linear map. -/
theorem map (f : M →ₗ[R] N) (h : SameRay R x y) : SameRay R (f x) (f y) :=
(h.imp fun hx => by rw [hx, map_zero]) <|
@@ -169,6 +281,12 @@ theorem map (f : M →ₗ[R] N) (h : SameRay R x y) : SameRay R (f x) (f y) :=
⟨r₁, r₂, hr₁, hr₂, by rw [← f.map_smul, ← f.map_smul, h]⟩
#align same_ray.map SameRay.map
+/- warning: function.injective.same_ray_map_iff -> Function.Injective.sameRay_map_iff is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {N : Type.{u3}} [_inst_4 : AddCommMonoid.{u3} N] [_inst_5 : Module.{u1, u3} R N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_4] {x : M} {y : M} {F : Type.{u4}} [_inst_7 : LinearMapClass.{u4, u1, u2, u3} F R M N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5] {f : F}, (Function.Injective.{succ u2, succ u3} M N (coeFn.{succ u4, max (succ u2) (succ u3)} F (fun (_x : F) => M -> N) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} F M (fun (_x : M) => N) (SMulHomClass.toFunLike.{u4, u1, u2, u3} F R M N (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (DistribSMul.toSmulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) (SMulZeroClass.toHasSmul.{u1, u3} R N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N (AddCommMonoid.toAddMonoid.{u3} N _inst_4))) (DistribSMul.toSmulZeroClass.{u1, u3} R N (AddMonoid.toAddZeroClass.{u3} N (AddCommMonoid.toAddMonoid.{u3} N _inst_4)) (DistribMulAction.toDistribSMul.{u1, u3} R N (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} N _inst_4) (Module.toDistribMulAction.{u1, u3} R N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_4 _inst_5)))) (DistribMulActionHomClass.toSmulHomClass.{u4, u1, u2, u3} F R M N (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (AddCommMonoid.toAddMonoid.{u3} N _inst_4) (Module.toDistribMulAction.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3) (Module.toDistribMulAction.{u1, u3} R N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_4 _inst_5) (SemilinearMapClass.distribMulActionHomClass.{u1, u2, u3, u4} R M N F (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 _inst_7)))) f)) -> (Iff (SameRay.{u1, u3} R _inst_1 N _inst_4 _inst_5 (coeFn.{succ u4, max (succ u2) (succ u3)} F (fun (_x : F) => M -> N) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} F M (fun (_x : M) => N) (SMulHomClass.toFunLike.{u4, u1, u2, u3} F R M N (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (DistribSMul.toSmulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) (SMulZeroClass.toHasSmul.{u1, u3} R N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N (AddCommMonoid.toAddMonoid.{u3} N _inst_4))) (DistribSMul.toSmulZeroClass.{u1, u3} R N (AddMonoid.toAddZeroClass.{u3} N (AddCommMonoid.toAddMonoid.{u3} N _inst_4)) (DistribMulAction.toDistribSMul.{u1, u3} R N (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} N _inst_4) (Module.toDistribMulAction.{u1, u3} R N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_4 _inst_5)))) (DistribMulActionHomClass.toSmulHomClass.{u4, u1, u2, u3} F R M N (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (AddCommMonoid.toAddMonoid.{u3} N _inst_4) (Module.toDistribMulAction.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3) (Module.toDistribMulAction.{u1, u3} R N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_4 _inst_5) (SemilinearMapClass.distribMulActionHomClass.{u1, u2, u3, u4} R M N F (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 _inst_7)))) f x) (coeFn.{succ u4, max (succ u2) (succ u3)} F (fun (_x : F) => M -> N) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} F M (fun (_x : M) => N) (SMulHomClass.toFunLike.{u4, u1, u2, u3} F R M N (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (DistribSMul.toSmulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) (SMulZeroClass.toHasSmul.{u1, u3} R N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N (AddCommMonoid.toAddMonoid.{u3} N _inst_4))) (DistribSMul.toSmulZeroClass.{u1, u3} R N (AddMonoid.toAddZeroClass.{u3} N (AddCommMonoid.toAddMonoid.{u3} N _inst_4)) (DistribMulAction.toDistribSMul.{u1, u3} R N (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} N _inst_4) (Module.toDistribMulAction.{u1, u3} R N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_4 _inst_5)))) (DistribMulActionHomClass.toSmulHomClass.{u4, u1, u2, u3} F R M N (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (AddCommMonoid.toAddMonoid.{u3} N _inst_4) (Module.toDistribMulAction.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3) (Module.toDistribMulAction.{u1, u3} R N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_4 _inst_5) (SemilinearMapClass.distribMulActionHomClass.{u1, u2, u3, u4} R M N F (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 _inst_7)))) f y)) (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x y))
+but is expected to have type
+ forall {R : Type.{u3}} [_inst_1 : StrictOrderedCommSemiring.{u3} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2] {N : Type.{u1}} [_inst_4 : AddCommMonoid.{u1} N] [_inst_5 : Module.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4] {x : M} {y : M} {F : Type.{u4}} [_inst_7 : LinearMapClass.{u4, u3, u2, u1} F R M N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5] {f : F}, (Function.Injective.{succ u2, succ u1} M N (FunLike.coe.{succ u4, succ u2, succ u1} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M) => N) _x) (SMulHomClass.toFunLike.{u4, u3, u2, u1} F R M N (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u3, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u3, u2} R M (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_3)))) (SMulZeroClass.toSMul.{u3, u1} R N (AddMonoid.toZero.{u1} N (AddCommMonoid.toAddMonoid.{u1} N _inst_4)) (DistribSMul.toSMulZeroClass.{u3, u1} R N (AddMonoid.toAddZeroClass.{u1} N (AddCommMonoid.toAddMonoid.{u1} N _inst_4)) (DistribMulAction.toDistribSMul.{u3, u1} R N (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} N _inst_4) (Module.toDistribMulAction.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4 _inst_5)))) (DistribMulActionHomClass.toSMulHomClass.{u4, u3, u2, u1} F R M N (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (AddCommMonoid.toAddMonoid.{u1} N _inst_4) (Module.toDistribMulAction.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_3) (Module.toDistribMulAction.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4 _inst_5) (SemilinearMapClass.distribMulActionHomClass.{u3, u2, u1, u4} R M N F (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 _inst_7))) f)) -> (Iff (SameRay.{u3, u1} R _inst_1 ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M) => N) x) _inst_4 _inst_5 (FunLike.coe.{succ u4, succ u2, succ u1} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M) => N) _x) (SMulHomClass.toFunLike.{u4, u3, u2, u1} F R M N (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u3, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u3, u2} R M (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_3)))) (SMulZeroClass.toSMul.{u3, u1} R N (AddMonoid.toZero.{u1} N (AddCommMonoid.toAddMonoid.{u1} N _inst_4)) (DistribSMul.toSMulZeroClass.{u3, u1} R N (AddMonoid.toAddZeroClass.{u1} N (AddCommMonoid.toAddMonoid.{u1} N _inst_4)) (DistribMulAction.toDistribSMul.{u3, u1} R N (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} N _inst_4) (Module.toDistribMulAction.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4 _inst_5)))) (DistribMulActionHomClass.toSMulHomClass.{u4, u3, u2, u1} F R M N (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (AddCommMonoid.toAddMonoid.{u1} N _inst_4) (Module.toDistribMulAction.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_3) (Module.toDistribMulAction.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4 _inst_5) (SemilinearMapClass.distribMulActionHomClass.{u3, u2, u1, u4} R M N F (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 _inst_7))) f x) (FunLike.coe.{succ u4, succ u2, succ u1} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M) => N) _x) (SMulHomClass.toFunLike.{u4, u3, u2, u1} F R M N (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u3, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u3, u2} R M (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_3)))) (SMulZeroClass.toSMul.{u3, u1} R N (AddMonoid.toZero.{u1} N (AddCommMonoid.toAddMonoid.{u1} N _inst_4)) (DistribSMul.toSMulZeroClass.{u3, u1} R N (AddMonoid.toAddZeroClass.{u1} N (AddCommMonoid.toAddMonoid.{u1} N _inst_4)) (DistribMulAction.toDistribSMul.{u3, u1} R N (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} N _inst_4) (Module.toDistribMulAction.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4 _inst_5)))) (DistribMulActionHomClass.toSMulHomClass.{u4, u3, u2, u1} F R M N (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (AddCommMonoid.toAddMonoid.{u1} N _inst_4) (Module.toDistribMulAction.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_3) (Module.toDistribMulAction.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4 _inst_5) (SemilinearMapClass.distribMulActionHomClass.{u3, u2, u1, u4} R M N F (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 _inst_7))) f y)) (SameRay.{u3, u2} R _inst_1 M _inst_2 _inst_3 x y))
+Case conversion may be inaccurate. Consider using '#align function.injective.same_ray_map_iff Function.Injective.sameRay_map_iffₓ'. -/
/-- The images of two vectors under an injective linear map are on the same ray if and only if the
original vectors are on the same ray. -/
theorem Function.Injective.sameRay_map_iff {F : Type _} [LinearMapClass F R M N] {f : F}
@@ -176,13 +294,25 @@ theorem Function.Injective.sameRay_map_iff {F : Type _} [LinearMapClass F R M N]
simp only [SameRay, map_zero, ← hf.eq_iff, map_smul]
#align function.injective.same_ray_map_iff Function.Injective.sameRay_map_iff
+/- warning: same_ray_map_iff -> SameRay.sameRay_map_iff is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {N : Type.{u3}} [_inst_4 : AddCommMonoid.{u3} N] [_inst_5 : Module.{u1, u3} R N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_4] {x : M} {y : M} (e : LinearEquiv.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5), Iff (SameRay.{u1, u3} R _inst_1 N _inst_4 _inst_5 (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearEquiv.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) (fun (_x : LinearEquiv.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) => M -> N) (LinearEquiv.hasCoeToFun.{u1, u1, u2, u3} R R M N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) e x) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearEquiv.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) (fun (_x : LinearEquiv.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) => M -> N) (LinearEquiv.hasCoeToFun.{u1, u1, u2, u3} R R M N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) e y)) (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x y)
+but is expected to have type
+ forall {R : Type.{u3}} [_inst_1 : StrictOrderedCommSemiring.{u3} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2] {N : Type.{u1}} [_inst_4 : AddCommMonoid.{u1} N] [_inst_5 : Module.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4] {x : M} {y : M} (e : LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5), Iff (SameRay.{u3, u1} R _inst_1 ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M) => N) x) _inst_4 _inst_5 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M) => N) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) R M N (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u3, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u3, u2} R M (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_3)))) (SMulZeroClass.toSMul.{u3, u1} R N (AddMonoid.toZero.{u1} N (AddCommMonoid.toAddMonoid.{u1} N _inst_4)) (DistribSMul.toSMulZeroClass.{u3, u1} R N (AddMonoid.toAddZeroClass.{u1} N (AddCommMonoid.toAddMonoid.{u1} N _inst_4)) (DistribMulAction.toDistribSMul.{u3, u1} R N (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} N _inst_4) (Module.toDistribMulAction.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4 _inst_5)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) R M N (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (AddCommMonoid.toAddMonoid.{u1} N _inst_4) (Module.toDistribMulAction.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_3) (Module.toDistribMulAction.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4 _inst_5) (SemilinearMapClass.distribMulActionHomClass.{u3, u2, u1, max u2 u1} R M N (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (SemilinearEquivClass.instSemilinearMapClass.{u3, u3, u2, u1, max u2 u1} R R M N (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u3, u3, u2, u1} R R M N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))))))) e x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M) => N) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) R M N (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u3, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u3, u2} R M (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_3)))) (SMulZeroClass.toSMul.{u3, u1} R N (AddMonoid.toZero.{u1} N (AddCommMonoid.toAddMonoid.{u1} N _inst_4)) (DistribSMul.toSMulZeroClass.{u3, u1} R N (AddMonoid.toAddZeroClass.{u1} N (AddCommMonoid.toAddMonoid.{u1} N _inst_4)) (DistribMulAction.toDistribSMul.{u3, u1} R N (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} N _inst_4) (Module.toDistribMulAction.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4 _inst_5)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) R M N (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (AddCommMonoid.toAddMonoid.{u1} N _inst_4) (Module.toDistribMulAction.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_3) (Module.toDistribMulAction.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4 _inst_5) (SemilinearMapClass.distribMulActionHomClass.{u3, u2, u1, max u2 u1} R M N (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (SemilinearEquivClass.instSemilinearMapClass.{u3, u3, u2, u1, max u2 u1} R R M N (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u3, u3, u2, u1} R R M N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))))))) e y)) (SameRay.{u3, u2} R _inst_1 M _inst_2 _inst_3 x y)
+Case conversion may be inaccurate. Consider using '#align same_ray_map_iff SameRay.sameRay_map_iffₓ'. -/
/-- The images of two vectors under a linear equivalence are on the same ray if and only if the
original vectors are on the same ray. -/
@[simp]
-theorem sameRay_map_iff (e : M ≃ₗ[R] N) : SameRay R (e x) (e y) ↔ SameRay R x y :=
+theorem SameRay.sameRay_map_iff (e : M ≃ₗ[R] N) : SameRay R (e x) (e y) ↔ SameRay R x y :=
Function.Injective.sameRay_map_iff (EquivLike.injective e)
-#align same_ray_map_iff sameRay_map_iff
-
+#align same_ray_map_iff SameRay.sameRay_map_iff
+
+/- warning: same_ray.smul -> SameRay.smul is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {x : M} {y : M} {S : Type.{u3}} [_inst_7 : Monoid.{u3} S] [_inst_8 : DistribMulAction.{u3, u2} S M _inst_7 (AddCommMonoid.toAddMonoid.{u2} M _inst_2)] [_inst_9 : SMulCommClass.{u1, u3, u2} R S M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) (SMulZeroClass.toHasSmul.{u3, u2} S M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (DistribSMul.toSmulZeroClass.{u3, u2} S M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u3, u2} S M _inst_7 (AddCommMonoid.toAddMonoid.{u2} M _inst_2) _inst_8)))], (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x y) -> (forall (s : S), SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 (SMul.smul.{u3, u2} S M (SMulZeroClass.toHasSmul.{u3, u2} S M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (DistribSMul.toSmulZeroClass.{u3, u2} S M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u3, u2} S M _inst_7 (AddCommMonoid.toAddMonoid.{u2} M _inst_2) _inst_8))) s x) (SMul.smul.{u3, u2} S M (SMulZeroClass.toHasSmul.{u3, u2} S M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (DistribSMul.toSmulZeroClass.{u3, u2} S M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u3, u2} S M _inst_7 (AddCommMonoid.toAddMonoid.{u2} M _inst_2) _inst_8))) s y))
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {x : M} {y : M} {S : Type.{u3}} [_inst_7 : Monoid.{u3} S] [_inst_8 : DistribMulAction.{u3, u2} S M _inst_7 (AddCommMonoid.toAddMonoid.{u2} M _inst_2)] [_inst_9 : SMulCommClass.{u1, u3, u2} R S M (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CommSemiring.toCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R _inst_1))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) (SMulZeroClass.toSMul.{u3, u2} S M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u3, u2} S M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u3, u2} S M _inst_7 (AddCommMonoid.toAddMonoid.{u2} M _inst_2) _inst_8)))], (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x y) -> (forall (s : S), SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 (HSMul.hSMul.{u3, u2, u2} S M M (instHSMul.{u3, u2} S M (SMulZeroClass.toSMul.{u3, u2} S M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u3, u2} S M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u3, u2} S M _inst_7 (AddCommMonoid.toAddMonoid.{u2} M _inst_2) _inst_8)))) s x) (HSMul.hSMul.{u3, u2, u2} S M M (instHSMul.{u3, u2} S M (SMulZeroClass.toSMul.{u3, u2} S M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u3, u2} S M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u3, u2} S M _inst_7 (AddCommMonoid.toAddMonoid.{u2} M _inst_2) _inst_8)))) s y))
+Case conversion may be inaccurate. Consider using '#align same_ray.smul SameRay.smulₓ'. -/
/-- If two vectors are on the same ray then both scaled by the same action are also on the same
ray. -/
theorem smul {S : Type _} [Monoid S] [DistribMulAction S M] [SMulCommClass R S M]
@@ -190,6 +320,12 @@ theorem smul {S : Type _} [Monoid S] [DistribMulAction S M] [SMulCommClass R S M
h.map (s • (LinearMap.id : M →ₗ[R] M))
#align same_ray.smul SameRay.smul
+/- warning: same_ray.add_left -> SameRay.add_left is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {x : M} {y : M} {z : M}, (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x z) -> (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 y z) -> (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toHasAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))) x y) z)
+but is expected to have type
+ forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] {x : M} {y : M} {z : M}, (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 x z) -> (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 y z) -> (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 (HAdd.hAdd.{u1, u1, u1} M M M (instHAdd.{u1} M (AddZeroClass.toAdd.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)))) x y) z)
+Case conversion may be inaccurate. Consider using '#align same_ray.add_left SameRay.add_leftₓ'. -/
/-- If `x` and `y` are on the same ray as `z`, then so is `x + y`. -/
theorem add_left (hx : SameRay R x z) (hy : SameRay R y z) : SameRay R (x + y) z :=
by
@@ -204,6 +340,12 @@ theorem add_left (hx : SameRay R x z) (hy : SameRay R y z) : SameRay R (x + y) z
rw [smul_comm]
#align same_ray.add_left SameRay.add_left
+/- warning: same_ray.add_right -> SameRay.add_right is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {x : M} {y : M} {z : M}, (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x y) -> (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x z) -> (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 x (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toHasAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))) y z))
+but is expected to have type
+ forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] {x : M} {y : M} {z : M}, (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 x y) -> (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 x z) -> (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 x (HAdd.hAdd.{u1, u1, u1} M M M (instHAdd.{u1} M (AddZeroClass.toAdd.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)))) y z))
+Case conversion may be inaccurate. Consider using '#align same_ray.add_right SameRay.add_rightₓ'. -/
/-- If `y` and `z` are on the same ray as `x`, then so is `y + z`. -/
theorem add_right (hy : SameRay R x y) (hz : SameRay R x z) : SameRay R x (y + z) :=
(hy.symm.add_left hz.symm).symm
@@ -211,16 +353,24 @@ theorem add_right (hy : SameRay R x y) (hz : SameRay R x z) : SameRay R x (y + z
end SameRay
+#print RayVector /-
/-- Nonzero vectors, as used to define rays. This type depends on an unused argument `R` so that
`ray_vector.setoid` can be an instance. -/
@[nolint unused_arguments has_nonempty_instance]
def RayVector (R M : Type _) [Zero M] :=
{ v : M // v ≠ 0 }
#align ray_vector RayVector
+-/
-instance RayVector.hasCoe {R M : Type _} [Zero M] : Coe (RayVector R M) M :=
+/- warning: ray_vector.has_coe -> RayVector.coe is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {M : Type.{u2}} [_inst_7 : Zero.{u2} M], Coe.{succ u2, succ u2} (RayVector.{u1, u2} R M _inst_7) M
+but is expected to have type
+ forall {R : Type.{u1}} {M : Type.{u2}} {_inst_7 : Zero.{u2} M}, CoeOut.{succ u2, succ u2} (RayVector.{u1, u2} R M _inst_7) M
+Case conversion may be inaccurate. Consider using '#align ray_vector.has_coe RayVector.coeₓ'. -/
+instance RayVector.coe {R M : Type _} [Zero M] : Coe (RayVector R M) M :=
coeSubtype
-#align ray_vector.has_coe RayVector.hasCoe
+#align ray_vector.has_coe RayVector.coe
instance {R M : Type _} [Zero M] [Nontrivial M] : Nonempty (RayVector R M) :=
let ⟨x, hx⟩ := exists_ne (0 : M)
@@ -236,14 +386,22 @@ instance : Setoid (RayVector R M)
⟨fun x => SameRay.refl _, fun x y h => h.symm, fun x y z hxy hyz =>
hxy.trans hyz fun hy => (y.2 hy).elim⟩
+#print Module.Ray /-
/-- A ray (equivalence class of nonzero vectors with common positive multiples) in a module. -/
@[nolint has_nonempty_instance]
def Module.Ray :=
Quotient (RayVector.setoid R M)
#align module.ray Module.Ray
+-/
variable {R M}
+/- warning: equiv_iff_same_ray -> equiv_iff_sameRay is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {v₁ : RayVector.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))} {v₂ : RayVector.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))}, Iff (HasEquivₓ.Equiv.{succ u2} (RayVector.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))) (setoidHasEquiv.{succ u2} (RayVector.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))) (RayVector.setoid.{u1, u2} R _inst_1 M _inst_2 _inst_3)) v₁ v₂) (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (RayVector.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))) M (HasLiftT.mk.{succ u2, succ u2} (RayVector.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))) M (CoeTCₓ.coe.{succ u2, succ u2} (RayVector.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))) M (coeBase.{succ u2, succ u2} (RayVector.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))) M (RayVector.coe.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))) v₁) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (RayVector.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))) M (HasLiftT.mk.{succ u2, succ u2} (RayVector.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))) M (CoeTCₓ.coe.{succ u2, succ u2} (RayVector.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))) M (coeBase.{succ u2, succ u2} (RayVector.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))) M (RayVector.coe.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))) v₂))
+but is expected to have type
+ forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] {v₁ : RayVector.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2))} {v₂ : RayVector.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2))}, Iff (HasEquiv.Equiv.{succ u1, 0} (RayVector.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2))) (instHasEquiv.{succ u1} (RayVector.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2))) (RayVector.Setoid.{u2, u1} R _inst_1 M _inst_2 _inst_3)) v₁ v₂) (SameRay.{u2, u1} R _inst_1 M _inst_2 _inst_3 (Subtype.val.{succ u1} M (fun (v : M) => Ne.{succ u1} M v (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2))))) v₁) (Subtype.val.{succ u1} M (fun (v : M) => Ne.{succ u1} M v (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2))))) v₂))
+Case conversion may be inaccurate. Consider using '#align equiv_iff_same_ray equiv_iff_sameRayₓ'. -/
/-- Equivalence of nonzero vectors, in terms of same_ray. -/
theorem equiv_iff_sameRay {v₁ v₂ : RayVector R M} : v₁ ≈ v₂ ↔ SameRay R (v₁ : M) v₂ :=
Iff.rfl
@@ -251,11 +409,23 @@ theorem equiv_iff_sameRay {v₁ v₂ : RayVector R M} : v₁ ≈ v₂ ↔ SameRa
variable (R)
+/- warning: ray_of_ne_zero -> rayOfNeZero is a dubious translation:
+lean 3 declaration is
+ forall (R : Type.{u1}) [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] (v : M), (Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))) -> (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3)
+but is expected to have type
+ forall (R : Type.{u1}) [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] (v : M), (Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))) -> (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3)
+Case conversion may be inaccurate. Consider using '#align ray_of_ne_zero rayOfNeZeroₓ'. -/
/-- The ray given by a nonzero vector. -/
protected def rayOfNeZero (v : M) (h : v ≠ 0) : Module.Ray R M :=
⟦⟨v, h⟩⟧
#align ray_of_ne_zero rayOfNeZero
+/- warning: module.ray.ind -> Module.Ray.ind is a dubious translation:
+lean 3 declaration is
+ forall (R : Type.{u1}) [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {C : (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) -> Prop}, (forall (v : M) (hv : Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))), C (rayOfNeZero.{u1, u2} R _inst_1 M _inst_2 _inst_3 v hv)) -> (forall (x : Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3), C x)
+but is expected to have type
+ forall (R : Type.{u2}) [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] {C : (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) -> Prop}, (forall (v : M) (hv : Ne.{succ u1} M v (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2))))), C (rayOfNeZero.{u2, u1} R _inst_1 M _inst_2 _inst_3 v hv)) -> (forall (x : Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3), C x)
+Case conversion may be inaccurate. Consider using '#align module.ray.ind Module.Ray.indₓ'. -/
/-- An induction principle for `module.ray`, used as `induction x using module.ray.ind`. -/
theorem Module.Ray.ind {C : Module.Ray R M → Prop} (h : ∀ (v) (hv : v ≠ 0), C (rayOfNeZero R v hv))
(x : Module.Ray R M) : C x :=
@@ -267,6 +437,12 @@ variable {R}
instance [Nontrivial M] : Nonempty (Module.Ray R M) :=
Nonempty.map Quotient.mk' inferInstance
+/- warning: ray_eq_iff -> ray_eq_iff is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {v₁ : M} {v₂ : M} (hv₁ : Ne.{succ u2} M v₁ (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))) (hv₂ : Ne.{succ u2} M v₂ (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))), Iff (Eq.{succ u2} (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (rayOfNeZero.{u1, u2} R _inst_1 M _inst_2 _inst_3 v₁ hv₁) (rayOfNeZero.{u1, u2} R _inst_1 M _inst_2 _inst_3 v₂ hv₂)) (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 v₁ v₂)
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {v₁ : M} {v₂ : M} (hv₁ : Ne.{succ u2} M v₁ (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))) (hv₂ : Ne.{succ u2} M v₂ (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))), Iff (Eq.{succ u2} (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (rayOfNeZero.{u1, u2} R _inst_1 M _inst_2 _inst_3 v₁ hv₁) (rayOfNeZero.{u1, u2} R _inst_1 M _inst_2 _inst_3 v₂ hv₂)) (SameRay.{u1, u2} R _inst_1 M _inst_2 _inst_3 v₁ v₂)
+Case conversion may be inaccurate. Consider using '#align ray_eq_iff ray_eq_iffₓ'. -/
/-- The rays given by two nonzero vectors are equal if and only if those vectors
satisfy `same_ray`. -/
theorem ray_eq_iff {v₁ v₂ : M} (hv₁ : v₁ ≠ 0) (hv₂ : v₂ ≠ 0) :
@@ -274,34 +450,63 @@ theorem ray_eq_iff {v₁ v₂ : M} (hv₁ : v₁ ≠ 0) (hv₂ : v₂ ≠ 0) :
Quotient.eq'
#align ray_eq_iff ray_eq_iff
+/- warning: ray_pos_smul -> ray_pos_smul is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {v : M} (h : Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))) {r : R}, (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedCancelAddCommMonoid.toPartialOrder.{u1} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))))))) r) -> (forall (hrv : Ne.{succ u2} M (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) r v) (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))), Eq.{succ u2} (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (rayOfNeZero.{u1, u2} R _inst_1 M _inst_2 _inst_3 (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) r v) hrv) (rayOfNeZero.{u1, u2} R _inst_1 M _inst_2 _inst_3 v h))
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {v : M} (h : Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))) {r : R}, (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (StrictOrderedSemiring.toPartialOrder.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CommSemiring.toCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R _inst_1))))) r) -> (forall (hrv : Ne.{succ u2} M (HSMul.hSMul.{u1, u2, u2} R M M (instHSMul.{u1, u2} R M (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CommSemiring.toCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R _inst_1))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3))))) r v) (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))), Eq.{succ u2} (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (rayOfNeZero.{u1, u2} R _inst_1 M _inst_2 _inst_3 (HSMul.hSMul.{u1, u2, u2} R M M (instHSMul.{u1, u2} R M (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CommSemiring.toCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R _inst_1))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3))))) r v) hrv) (rayOfNeZero.{u1, u2} R _inst_1 M _inst_2 _inst_3 v h))
+Case conversion may be inaccurate. Consider using '#align ray_pos_smul ray_pos_smulₓ'. -/
/-- The ray given by a positive multiple of a nonzero vector. -/
@[simp]
theorem ray_pos_smul {v : M} (h : v ≠ 0) {r : R} (hr : 0 < r) (hrv : r • v ≠ 0) :
rayOfNeZero R (r • v) hrv = rayOfNeZero R v h :=
- (ray_eq_iff _ _).2 <| sameRay_pos_smul_left v hr
+ (ray_eq_iff _ _).2 <| SameRay.sameRay_pos_smul_left v hr
#align ray_pos_smul ray_pos_smul
+/- warning: ray_vector.map_linear_equiv -> RayVector.mapLinearEquiv is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {N : Type.{u3}} [_inst_4 : AddCommMonoid.{u3} N] [_inst_5 : Module.{u1, u3} R N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_4], (LinearEquiv.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RayVector.mapLinearEquiv._proof_1.{u1} R _inst_1) (RayVector.mapLinearEquiv._proof_2.{u1} R _inst_1) M N _inst_2 _inst_4 _inst_3 _inst_5) -> (Equiv.{succ u2, succ u3} (RayVector.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))) (RayVector.{u1, u3} R N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N (AddCommMonoid.toAddMonoid.{u3} N _inst_4)))))
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {N : Type.{u3}} [_inst_4 : AddCommMonoid.{u3} N] [_inst_5 : Module.{u1, u3} R N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_4], (LinearEquiv.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) -> (Equiv.{succ u2, succ u3} (RayVector.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (RayVector.{u1, u3} R N (AddMonoid.toZero.{u3} N (AddCommMonoid.toAddMonoid.{u3} N _inst_4))))
+Case conversion may be inaccurate. Consider using '#align ray_vector.map_linear_equiv RayVector.mapLinearEquivₓ'. -/
/-- An equivalence between modules implies an equivalence between ray vectors. -/
def RayVector.mapLinearEquiv (e : M ≃ₗ[R] N) : RayVector R M ≃ RayVector R N :=
Equiv.subtypeEquiv e.toEquiv fun _ => e.map_ne_zero_iff.symm
#align ray_vector.map_linear_equiv RayVector.mapLinearEquiv
+#print Module.Ray.map /-
/-- An equivalence between modules implies an equivalence between rays. -/
def Module.Ray.map (e : M ≃ₗ[R] N) : Module.Ray R M ≃ Module.Ray R N :=
- Quotient.congr (RayVector.mapLinearEquiv e) fun ⟨a, ha⟩ ⟨b, hb⟩ => (sameRay_map_iff _).symm
+ Quotient.congr (RayVector.mapLinearEquiv e) fun ⟨a, ha⟩ ⟨b, hb⟩ =>
+ (SameRay.sameRay_map_iff _).symm
#align module.ray.map Module.Ray.map
+-/
+/- warning: module.ray.map_apply -> Module.Ray.map_apply is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {N : Type.{u3}} [_inst_4 : AddCommMonoid.{u3} N] [_inst_5 : Module.{u1, u3} R N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_4] (e : LinearEquiv.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) (v : M) (hv : Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))), Eq.{succ u3} (Module.Ray.{u1, u3} R _inst_1 N _inst_4 _inst_5) (coeFn.{max 1 (max (succ u2) (succ u3)) (succ u3) (succ u2), max (succ u2) (succ u3)} (Equiv.{succ u2, succ u3} (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u1, u3} R _inst_1 N _inst_4 _inst_5)) (fun (_x : Equiv.{succ u2, succ u3} (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u1, u3} R _inst_1 N _inst_4 _inst_5)) => (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) -> (Module.Ray.{u1, u3} R _inst_1 N _inst_4 _inst_5)) (Equiv.hasCoeToFun.{succ u2, succ u3} (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u1, u3} R _inst_1 N _inst_4 _inst_5)) (Module.Ray.map.{u1, u2, u3} R _inst_1 M _inst_2 _inst_3 N _inst_4 _inst_5 e) (rayOfNeZero.{u1, u2} R _inst_1 M _inst_2 _inst_3 v hv)) (rayOfNeZero.{u1, u3} R _inst_1 N _inst_4 _inst_5 (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearEquiv.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) (fun (_x : LinearEquiv.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) => M -> N) (LinearEquiv.hasCoeToFun.{u1, u1, u2, u3} R R M N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) e v) (Iff.mpr (Ne.{succ u3} N (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearEquiv.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) (fun (_x : LinearEquiv.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) => M -> N) (LinearEquiv.hasCoeToFun.{u1, u1, u2, u3} R R M N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) e v) (OfNat.ofNat.{u3} N 0 (OfNat.mk.{u3} N 0 (Zero.zero.{u3} N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N (AddCommMonoid.toAddMonoid.{u3} N _inst_4))))))) (Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))) (LinearEquiv.map_ne_zero_iff.{u1, u1, u2, u3} R R M N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) e v) hv))
+but is expected to have type
+ forall {R : Type.{u3}} [_inst_1 : StrictOrderedCommSemiring.{u3} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2] {N : Type.{u1}} [_inst_4 : AddCommMonoid.{u1} N] [_inst_5 : Module.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4] (e : LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) (v : M) (hv : Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))), Eq.{succ u1} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Module.Ray.{u3, u2} R _inst_1 M _inst_2 _inst_3) => Module.Ray.{u3, u1} R _inst_1 N _inst_4 _inst_5) (rayOfNeZero.{u3, u2} R _inst_1 M _inst_2 _inst_3 v hv)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Equiv.{succ u2, succ u1} (Module.Ray.{u3, u2} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u3, u1} R _inst_1 N _inst_4 _inst_5)) (Module.Ray.{u3, u2} R _inst_1 M _inst_2 _inst_3) (fun (_x : Module.Ray.{u3, u2} R _inst_1 M _inst_2 _inst_3) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Module.Ray.{u3, u2} R _inst_1 M _inst_2 _inst_3) => Module.Ray.{u3, u1} R _inst_1 N _inst_4 _inst_5) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} (Module.Ray.{u3, u2} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u3, u1} R _inst_1 N _inst_4 _inst_5)) (Module.Ray.map.{u3, u2, u1} R _inst_1 M _inst_2 _inst_3 N _inst_4 _inst_5 e) (rayOfNeZero.{u3, u2} R _inst_1 M _inst_2 _inst_3 v hv)) (rayOfNeZero.{u3, u1} R _inst_1 ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M) => N) v) _inst_4 _inst_5 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M) => N) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) R M N (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u3, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u3, u2} R M (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_3)))) (SMulZeroClass.toSMul.{u3, u1} R N (AddMonoid.toZero.{u1} N (AddCommMonoid.toAddMonoid.{u1} N _inst_4)) (DistribSMul.toSMulZeroClass.{u3, u1} R N (AddMonoid.toAddZeroClass.{u1} N (AddCommMonoid.toAddMonoid.{u1} N _inst_4)) (DistribMulAction.toDistribSMul.{u3, u1} R N (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} N _inst_4) (Module.toDistribMulAction.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4 _inst_5)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) R M N (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (AddCommMonoid.toAddMonoid.{u1} N _inst_4) (Module.toDistribMulAction.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_3) (Module.toDistribMulAction.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4 _inst_5) (SemilinearMapClass.distribMulActionHomClass.{u3, u2, u1, max u2 u1} R M N (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (SemilinearEquivClass.instSemilinearMapClass.{u3, u3, u2, u1, max u2 u1} R R M N (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u3, u3, u2, u1} R R M N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))))))) e v) (Iff.mpr (Ne.{succ u1} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : M) => N) v) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) M (fun (_x : M) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : M) => N) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) M N (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) M N (AddEquivClass.toEquivLike.{max u2 u1, u2, u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) M N (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (AddZeroClass.toAdd.{u1} N (AddMonoid.toAddZeroClass.{u1} N (AddCommMonoid.toAddMonoid.{u1} N _inst_4))) (SemilinearEquivClass.toAddEquivClass.{max u2 u1, u3, u3, u2, u1} (LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5) R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5 (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u3, u3, u2, u1} R R M N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))))))) e v) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : M) => N) v) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : M) => N) v) (AddMonoid.toZero.{u1} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : M) => N) v) (AddCommMonoid.toAddMonoid.{u1} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : M) => N) v) _inst_4))))) (Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))) (LinearEquiv.map_ne_zero_iff.{u3, u3, u2, u1} R R M N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) e v) hv))
+Case conversion may be inaccurate. Consider using '#align module.ray.map_apply Module.Ray.map_applyₓ'. -/
@[simp]
theorem Module.Ray.map_apply (e : M ≃ₗ[R] N) (v : M) (hv : v ≠ 0) :
Module.Ray.map e (rayOfNeZero _ v hv) = rayOfNeZero _ (e v) (e.map_ne_zero_iff.2 hv) :=
rfl
#align module.ray.map_apply Module.Ray.map_apply
+#print Module.Ray.map_refl /-
@[simp]
theorem Module.Ray.map_refl : (Module.Ray.map <| LinearEquiv.refl R M) = Equiv.refl _ :=
Equiv.ext <| Module.Ray.ind R fun _ _ => rfl
#align module.ray.map_refl Module.Ray.map_refl
+-/
+/- warning: module.ray.map_symm -> Module.Ray.map_symm is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {N : Type.{u3}} [_inst_4 : AddCommMonoid.{u3} N] [_inst_5 : Module.{u1, u3} R N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_4] (e : LinearEquiv.{u1, u1, u2, u3} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5), Eq.{max 1 (max (succ u3) (succ u2)) (succ u2) (succ u3)} (Equiv.{succ u3, succ u2} (Module.Ray.{u1, u3} R _inst_1 N _inst_4 _inst_5) (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3)) (Equiv.symm.{succ u2, succ u3} (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u1, u3} R _inst_1 N _inst_4 _inst_5) (Module.Ray.map.{u1, u2, u3} R _inst_1 M _inst_2 _inst_3 N _inst_4 _inst_5 e)) (Module.Ray.map.{u1, u3, u2} R _inst_1 N _inst_4 _inst_5 M _inst_2 _inst_3 (LinearEquiv.symm.{u1, u1, u2, u3} R R M N (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) e))
+but is expected to have type
+ forall {R : Type.{u3}} [_inst_1 : StrictOrderedCommSemiring.{u3} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2] {N : Type.{u1}} [_inst_4 : AddCommMonoid.{u1} N] [_inst_5 : Module.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_4] (e : LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) M N _inst_2 _inst_4 _inst_3 _inst_5), Eq.{max (succ u2) (succ u1)} (Equiv.{succ u1, succ u2} (Module.Ray.{u3, u1} R _inst_1 N _inst_4 _inst_5) (Module.Ray.{u3, u2} R _inst_1 M _inst_2 _inst_3)) (Equiv.symm.{succ u2, succ u1} (Module.Ray.{u3, u2} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u3, u1} R _inst_1 N _inst_4 _inst_5) (Module.Ray.map.{u3, u2, u1} R _inst_1 M _inst_2 _inst_3 N _inst_4 _inst_5 e)) (Module.Ray.map.{u3, u1, u2} R _inst_1 N _inst_4 _inst_5 M _inst_2 _inst_3 (LinearEquiv.symm.{u3, u3, u2, u1} R R M N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)) _inst_2 _inst_4 _inst_3 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R _inst_1))) e))
+Case conversion may be inaccurate. Consider using '#align module.ray.map_symm Module.Ray.map_symmₓ'. -/
@[simp]
theorem Module.Ray.map_symm (e : M ≃ₗ[R] N) : (Module.Ray.map e).symm = Module.Ray.map e.symm :=
rfl
@@ -329,6 +534,12 @@ instance : MulAction G (Module.Ray R M)
mul_smul a b := Quotient.ind fun m => congr_arg Quotient.mk' <| mul_smul a b _
one_smul := Quotient.ind fun m => congr_arg Quotient.mk' <| one_smul _ _
+/- warning: module.ray.linear_equiv_smul_eq_map -> Module.Ray.linearEquiv_smul_eq_map is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] (e : LinearEquiv.{u1, u1, u2, u2} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (v : Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3), Eq.{succ u2} (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (SMul.smul.{u2, u2} (LinearEquiv.{u1, u1, u2, u2} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (MulAction.toHasSmul.{u2, u2} (LinearEquiv.{u1, u1, u2, u2} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (DivInvMonoid.toMonoid.{u2} (LinearEquiv.{u1, u1, u2, u2} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (Group.toDivInvMonoid.{u2} (LinearEquiv.{u1, u1, u2, u2} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (LinearEquiv.automorphismGroup.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3))) (Module.Ray.mulAction.{u1, u2, u2} R _inst_1 M _inst_2 _inst_3 (LinearEquiv.{u1, u1, u2, u2} R R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (LinearEquiv.automorphismGroup.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3) (LinearEquiv.applyDistribMulAction.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3) (LinearEquiv.apply_smulCommClass.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3))) e v) (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3)) (fun (_x : Equiv.{succ u2, succ u2} (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3)) => (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) -> (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3)) (Equiv.hasCoeToFun.{succ u2, succ u2} (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3)) (Module.Ray.map.{u1, u2, u2} R _inst_1 M _inst_2 _inst_3 M _inst_2 _inst_3 e) v)
+but is expected to have type
+ forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] (e : LinearEquiv.{u2, u2, u1, u1} R R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (v : Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3), Eq.{succ u1} (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (HSMul.hSMul.{u1, u1, u1} (LinearEquiv.{u2, u2, u1, u1} R R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (instHSMul.{u1, u1} (LinearEquiv.{u2, u2, u1, u1} R R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (MulAction.toSMul.{u1, u1} (LinearEquiv.{u2, u2, u1, u1} R R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (DivInvMonoid.toMonoid.{u1} (LinearEquiv.{u2, u2, u1, u1} R R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (Group.toDivInvMonoid.{u1} (LinearEquiv.{u2, u2, u1, u1} R R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (LinearEquiv.automorphismGroup.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3))) (instMulActionRayToMonoidToDivInvMonoid.{u2, u1, u1} R _inst_1 M _inst_2 _inst_3 (LinearEquiv.{u2, u2, u1, u1} R R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (RingHomInvPair.ids.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) M M _inst_2 _inst_2 _inst_3 _inst_3) (LinearEquiv.automorphismGroup.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3) (LinearEquiv.applyDistribMulAction.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3) (LinearEquiv.apply_smulCommClass.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3)))) e v) (FunLike.coe.{succ u1, succ u1, succ u1} (Equiv.{succ u1, succ u1} (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3)) (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (fun (_x : Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) => Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u1} (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3)) (Module.Ray.map.{u2, u1, u1} R _inst_1 M _inst_2 _inst_3 M _inst_2 _inst_3 e) v)
+Case conversion may be inaccurate. Consider using '#align module.ray.linear_equiv_smul_eq_map Module.Ray.linearEquiv_smul_eq_mapₓ'. -/
/-- The action via `linear_equiv.apply_distrib_mul_action` corresponds to `module.ray.map`. -/
@[simp]
theorem Module.Ray.linearEquiv_smul_eq_map (e : M ≃ₗ[R] M) (v : Module.Ray R M) :
@@ -336,6 +547,12 @@ theorem Module.Ray.linearEquiv_smul_eq_map (e : M ≃ₗ[R] M) (v : Module.Ray R
rfl
#align module.ray.linear_equiv_smul_eq_map Module.Ray.linearEquiv_smul_eq_map
+/- warning: smul_ray_of_ne_zero -> smul_rayOfNeZero is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] {G : Type.{u3}} [_inst_7 : Group.{u3} G] [_inst_8 : DistribMulAction.{u3, u2} G M (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_7)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2)] [_inst_9 : SMulCommClass.{u1, u3, u2} R G M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) (SMulZeroClass.toHasSmul.{u3, u2} G M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (DistribSMul.toSmulZeroClass.{u3, u2} G M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u3, u2} G M (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_7)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) _inst_8)))] (g : G) (v : M) (hv : Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))), Eq.{succ u2} (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (SMul.smul.{u3, u2} G (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (MulAction.toHasSmul.{u3, u2} G (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_7)) (Module.Ray.mulAction.{u1, u2, u3} R _inst_1 M _inst_2 _inst_3 G _inst_7 _inst_8 _inst_9)) g (rayOfNeZero.{u1, u2} R _inst_1 M _inst_2 _inst_3 v hv)) (rayOfNeZero.{u1, u2} R _inst_1 M _inst_2 _inst_3 (SMul.smul.{u3, u2} G M (SMulZeroClass.toHasSmul.{u3, u2} G M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (DistribSMul.toSmulZeroClass.{u3, u2} G M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u3, u2} G M (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_7)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) _inst_8))) g v) (Iff.mpr (Ne.{succ u2} M (SMul.smul.{u3, u2} G M (SMulZeroClass.toHasSmul.{u3, u2} G M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (DistribSMul.toSmulZeroClass.{u3, u2} G M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u3, u2} G M (DivInvMonoid.toMonoid.{u3} G (Group.toDivInvMonoid.{u3} G _inst_7)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) _inst_8))) g v) (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))) (Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))) (smul_ne_zero_iff_ne.{u3, u2} G M _inst_7 (AddCommMonoid.toAddMonoid.{u2} M _inst_2) _inst_8 g v) hv))
+but is expected to have type
+ forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u3}} [_inst_2 : AddCommMonoid.{u3} M] [_inst_3 : Module.{u2, u3} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] {G : Type.{u1}} [_inst_7 : Group.{u1} G] [_inst_8 : DistribMulAction.{u1, u3} G M (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_7)) (AddCommMonoid.toAddMonoid.{u3} M _inst_2)] [_inst_9 : SMulCommClass.{u2, u1, u3} R G M (SMulZeroClass.toSMul.{u2, u3} R M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u3} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u3} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) (Module.toMulActionWithZero.{u2, u3} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3)))) (SMulZeroClass.toSMul.{u1, u3} G M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) (DistribSMul.toSMulZeroClass.{u1, u3} G M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u3} G M (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_7)) (AddCommMonoid.toAddMonoid.{u3} M _inst_2) _inst_8)))] (g : G) (v : M) (hv : Ne.{succ u3} M v (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2))))), Eq.{succ u3} (Module.Ray.{u2, u3} R _inst_1 M _inst_2 _inst_3) (HSMul.hSMul.{u1, u3, u3} G (Module.Ray.{u2, u3} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u2, u3} R _inst_1 M _inst_2 _inst_3) (instHSMul.{u1, u3} G (Module.Ray.{u2, u3} R _inst_1 M _inst_2 _inst_3) (MulAction.toSMul.{u1, u3} G (Module.Ray.{u2, u3} R _inst_1 M _inst_2 _inst_3) (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_7)) (instMulActionRayToMonoidToDivInvMonoid.{u2, u3, u1} R _inst_1 M _inst_2 _inst_3 G _inst_7 _inst_8 _inst_9))) g (rayOfNeZero.{u2, u3} R _inst_1 M _inst_2 _inst_3 v hv)) (rayOfNeZero.{u2, u3} R _inst_1 M _inst_2 _inst_3 (HSMul.hSMul.{u1, u3, u3} G M M (instHSMul.{u1, u3} G M (SMulZeroClass.toSMul.{u1, u3} G M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) (DistribSMul.toSMulZeroClass.{u1, u3} G M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u3} G M (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_7)) (AddCommMonoid.toAddMonoid.{u3} M _inst_2) _inst_8)))) g v) (Iff.mpr (Ne.{succ u3} M (HSMul.hSMul.{u1, u3, u3} G M M (instHSMul.{u1, u3} G M (SMulZeroClass.toSMul.{u1, u3} G M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) (DistribSMul.toSMulZeroClass.{u1, u3} G M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u3} G M (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_7)) (AddCommMonoid.toAddMonoid.{u3} M _inst_2) _inst_8)))) g v) (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2))))) (Ne.{succ u3} M v (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2))))) (smul_ne_zero_iff_ne.{u1, u3} G M _inst_7 (AddCommMonoid.toAddMonoid.{u3} M _inst_2) _inst_8 g v) hv))
+Case conversion may be inaccurate. Consider using '#align smul_ray_of_ne_zero smul_rayOfNeZeroₓ'. -/
@[simp]
theorem smul_rayOfNeZero (g : G) (v : M) (hv) :
g • rayOfNeZero R v hv = rayOfNeZero R (g • v) ((smul_ne_zero_iff_ne _).2 hv) :=
@@ -346,36 +563,68 @@ end Action
namespace Module.Ray
+/- warning: module.ray.units_smul_of_pos -> Module.Ray.units_smul_of_pos is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] (u : Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))), (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedCancelAddCommMonoid.toPartialOrder.{u1} R (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))))))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) R (HasLiftT.mk.{succ u1, succ u1} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) R (CoeTCₓ.coe.{succ u1, succ u1} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) R (coeBase.{succ u1, succ u1} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) R (Units.hasCoe.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))))) u)) -> (forall (v : Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3), Eq.{succ u2} (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (SMul.smul.{u1, u2} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (MulAction.toHasSmul.{u1, u2} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (DivInvMonoid.toMonoid.{u1} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (Group.toDivInvMonoid.{u1} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (Units.group.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))))) (Module.Ray.mulAction.{u1, u2, u1} R _inst_1 M _inst_2 _inst_3 (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (Units.group.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))))) (Units.distribMulAction.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)) (Units.smulCommClass_right.{u1, u1, u2} R R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))) (smulCommClass_self.{u1, u2} R M (CommSemiring.toCommMonoid.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R _inst_1)) (MulActionWithZero.toMulAction.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2 _inst_3)))))) u v) v)
+but is expected to have type
+ forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] (u : Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))))), (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedSemiring.toPartialOrder.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))))) (Units.val.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) u)) -> (forall (v : Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3), Eq.{succ u1} (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (HSMul.hSMul.{u2, u1, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))))) (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (instHSMul.{u2, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))))) (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (MulAction.toSMul.{u2, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))))) (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (DivInvMonoid.toMonoid.{u2} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))))) (Group.toDivInvMonoid.{u2} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))))) (Units.instGroupUnits.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))))))) (instMulActionRayToMonoidToDivInvMonoid.{u2, u1, u2} R _inst_1 M _inst_2 _inst_3 (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))))) (Units.instGroupUnits.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))))) (Units.instDistribMulActionUnitsToMonoidToDivInvMonoidInstGroupUnits.{u2, u1} R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} M _inst_2) (Module.toDistribMulAction.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3)) (Units.smulCommClass_right.{u2, u2, u1} R R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3)))) (SMulZeroClass.toSMul.{u2, u1} R M (AddZeroClass.toZero.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2))) (DistribSMul.toSMulZeroClass.{u2, u1} R M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (DistribMulAction.toDistribSMul.{u2, u1} R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} M _inst_2) (Module.toDistribMulAction.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3)))) (smulCommClass_self.{u2, u1} R M (CommSemiring.toCommMonoid.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R _inst_1)) (MulActionWithZero.toMulAction.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2 _inst_3))))))) u v) v)
+Case conversion may be inaccurate. Consider using '#align module.ray.units_smul_of_pos Module.Ray.units_smul_of_posₓ'. -/
/-- Scaling by a positive unit is a no-op. -/
theorem units_smul_of_pos (u : Rˣ) (hu : 0 < (u : R)) (v : Module.Ray R M) : u • v = v :=
by
induction v using Module.Ray.ind
rw [smul_rayOfNeZero, ray_eq_iff]
- exact sameRay_pos_smul_left _ hu
+ exact SameRay.sameRay_pos_smul_left _ hu
#align module.ray.units_smul_of_pos Module.Ray.units_smul_of_pos
+/- warning: module.ray.some_ray_vector -> Module.Ray.someRayVector is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2], (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) -> (RayVector.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2], (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) -> (RayVector.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))
+Case conversion may be inaccurate. Consider using '#align module.ray.some_ray_vector Module.Ray.someRayVectorₓ'. -/
/-- An arbitrary `ray_vector` giving a ray. -/
def someRayVector (x : Module.Ray R M) : RayVector R M :=
Quotient.out x
#align module.ray.some_ray_vector Module.Ray.someRayVector
+/- warning: module.ray.some_ray_vector_ray -> Module.Ray.someRayVector_ray is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] (x : Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3), Eq.{succ u2} (Quotient.{succ u2} (RayVector.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))) (RayVector.setoid.{u1, u2} R _inst_1 M _inst_2 _inst_3)) (Quotient.mk'.{succ u2} (RayVector.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))) (RayVector.setoid.{u1, u2} R _inst_1 M _inst_2 _inst_3) (Module.Ray.someRayVector.{u1, u2} R _inst_1 M _inst_2 _inst_3 x)) x
+but is expected to have type
+ forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] (x : Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3), Eq.{succ u1} (Quotient.{succ u1} (RayVector.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2))) (RayVector.Setoid.{u2, u1} R _inst_1 M _inst_2 _inst_3)) (Quotient.mk.{succ u1} (RayVector.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2))) (RayVector.Setoid.{u2, u1} R _inst_1 M _inst_2 _inst_3) (Module.Ray.someRayVector.{u2, u1} R _inst_1 M _inst_2 _inst_3 x)) x
+Case conversion may be inaccurate. Consider using '#align module.ray.some_ray_vector_ray Module.Ray.someRayVector_rayₓ'. -/
/-- The ray of `some_ray_vector`. -/
@[simp]
theorem someRayVector_ray (x : Module.Ray R M) : (⟦x.someRayVector⟧ : Module.Ray R M) = x :=
Quotient.out_eq _
#align module.ray.some_ray_vector_ray Module.Ray.someRayVector_ray
+#print Module.Ray.someVector /-
/-- An arbitrary nonzero vector giving a ray. -/
def someVector (x : Module.Ray R M) : M :=
x.someRayVector
#align module.ray.some_vector Module.Ray.someVector
+-/
+/- warning: module.ray.some_vector_ne_zero -> Module.Ray.someVector_ne_zero is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] (x : Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3), Ne.{succ u2} M (Module.Ray.someVector.{u1, u2} R _inst_1 M _inst_2 _inst_3 x) (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))
+but is expected to have type
+ forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] (x : Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3), Ne.{succ u1} M (Module.Ray.someVector.{u2, u1} R _inst_1 M _inst_2 _inst_3 x) (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2))))
+Case conversion may be inaccurate. Consider using '#align module.ray.some_vector_ne_zero Module.Ray.someVector_ne_zeroₓ'. -/
/-- `some_vector` is nonzero. -/
@[simp]
theorem someVector_ne_zero (x : Module.Ray R M) : x.someVector ≠ 0 :=
x.someRayVector.property
#align module.ray.some_vector_ne_zero Module.Ray.someVector_ne_zero
+/- warning: module.ray.some_vector_ray -> Module.Ray.someVector_ray is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommSemiring.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R _inst_1)) _inst_2] (x : Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3), Eq.{succ u2} (Module.Ray.{u1, u2} R _inst_1 M _inst_2 _inst_3) (rayOfNeZero.{u1, u2} R _inst_1 M _inst_2 _inst_3 (Module.Ray.someVector.{u1, u2} R _inst_1 M _inst_2 _inst_3 x) (Module.Ray.someVector_ne_zero.{u1, u2} R _inst_1 M _inst_2 _inst_3 x)) x
+but is expected to have type
+ forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommSemiring.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R _inst_1)) _inst_2] (x : Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3), Eq.{succ u1} (Module.Ray.{u2, u1} R _inst_1 M _inst_2 _inst_3) (rayOfNeZero.{u2, u1} R _inst_1 M _inst_2 _inst_3 (Module.Ray.someVector.{u2, u1} R _inst_1 M _inst_2 _inst_3 x) (Module.Ray.someVector_ne_zero.{u1, u2} R _inst_1 M _inst_2 _inst_3 x)) x
+Case conversion may be inaccurate. Consider using '#align module.ray.some_vector_ray Module.Ray.someVector_rayₓ'. -/
/-- The ray of `some_vector`. -/
@[simp]
theorem someVector_ray (x : Module.Ray R M) : rayOfNeZero R _ x.someVector_ne_zero = x :=
@@ -392,19 +641,49 @@ variable {R : Type _} [StrictOrderedCommRing R]
variable {M N : Type _} [AddCommGroup M] [AddCommGroup N] [Module R M] [Module R N] {x y : M}
+/- warning: same_ray_neg_iff -> sameRay_neg_iff is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_4 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, Iff (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4 (Neg.neg.{u2} M (SubNegMonoid.toHasNeg.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))) x) (Neg.neg.{u2} M (SubNegMonoid.toHasNeg.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))) y)) (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4 x y)
+but is expected to have type
+ forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_4 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] {x : M} {y : M}, Iff (SameRay.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4 (Neg.neg.{u1} M (NegZeroClass.toNeg.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) x) (Neg.neg.{u1} M (NegZeroClass.toNeg.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) y)) (SameRay.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4 x y)
+Case conversion may be inaccurate. Consider using '#align same_ray_neg_iff sameRay_neg_iffₓ'. -/
/-- `same_ray.neg` as an `iff`. -/
@[simp]
theorem sameRay_neg_iff : SameRay R (-x) (-y) ↔ SameRay R x y := by
simp only [SameRay, neg_eq_zero, smul_neg, neg_inj]
#align same_ray_neg_iff sameRay_neg_iff
+/- warning: same_ray.of_neg -> SameRay.of_neg is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_4 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4 (Neg.neg.{u2} M (SubNegMonoid.toHasNeg.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))) x) (Neg.neg.{u2} M (SubNegMonoid.toHasNeg.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))) y)) -> (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4 x y)
+but is expected to have type
+ forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_4 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] {x : M} {y : M}, (SameRay.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4 (Neg.neg.{u1} M (NegZeroClass.toNeg.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) x) (Neg.neg.{u1} M (NegZeroClass.toNeg.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) y)) -> (SameRay.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4 x y)
+Case conversion may be inaccurate. Consider using '#align same_ray.of_neg SameRay.of_negₓ'. -/
+/- warning: same_ray.neg -> SameRay.neg is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_4 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4 x y) -> (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4 (Neg.neg.{u2} M (SubNegMonoid.toHasNeg.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))) x) (Neg.neg.{u2} M (SubNegMonoid.toHasNeg.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))) y))
+but is expected to have type
+ forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_4 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] {x : M} {y : M}, (SameRay.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4 x y) -> (SameRay.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4 (Neg.neg.{u1} M (NegZeroClass.toNeg.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) x) (Neg.neg.{u1} M (NegZeroClass.toNeg.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) y))
+Case conversion may be inaccurate. Consider using '#align same_ray.neg SameRay.negₓ'. -/
alias sameRay_neg_iff ↔ SameRay.of_neg SameRay.neg
#align same_ray.of_neg SameRay.of_neg
#align same_ray.neg SameRay.neg
+/- warning: same_ray_neg_swap -> sameRay_neg_swap is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_4 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, Iff (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4 (Neg.neg.{u2} M (SubNegMonoid.toHasNeg.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))) x) y) (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4 x (Neg.neg.{u2} M (SubNegMonoid.toHasNeg.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))) y))
+but is expected to have type
+ forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_4 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] {x : M} {y : M}, Iff (SameRay.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4 (Neg.neg.{u1} M (NegZeroClass.toNeg.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) x) y) (SameRay.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4 x (Neg.neg.{u1} M (NegZeroClass.toNeg.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) y))
+Case conversion may be inaccurate. Consider using '#align same_ray_neg_swap sameRay_neg_swapₓ'. -/
theorem sameRay_neg_swap : SameRay R (-x) y ↔ SameRay R x (-y) := by rw [← sameRay_neg_iff, neg_neg]
#align same_ray_neg_swap sameRay_neg_swap
+/- warning: eq_zero_of_same_ray_neg_smul_right -> eq_zero_of_sameRay_neg_smul_right is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_4 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} [_inst_6 : NoZeroSMulDivisors.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4))))] {r : R}, (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))) r (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))))))))) -> (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4 x (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4)))) r x)) -> (Eq.{succ u2} M x (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))))))))
+but is expected to have type
+ forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_4 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] {x : M} [_inst_6 : NoZeroSMulDivisors.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4))))] {r : R}, (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (StrictOrderedCommRing.toStrictOrderedRing.{u2} R _inst_1)))) r (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))))))) -> (SameRay.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4 x (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4))))) r x)) -> (Eq.{succ u1} M x (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))))))
+Case conversion may be inaccurate. Consider using '#align eq_zero_of_same_ray_neg_smul_right eq_zero_of_sameRay_neg_smul_rightₓ'. -/
theorem eq_zero_of_sameRay_neg_smul_right [NoZeroSMulDivisors R M] {r : R} (hr : r < 0)
(h : SameRay R x (r • x)) : x = 0 :=
by
@@ -416,6 +695,12 @@ theorem eq_zero_of_sameRay_neg_smul_right [NoZeroSMulDivisors R M] {r : R} (hr :
exact (mul_neg_of_pos_of_neg hr₂ hr).trans hr₁
#align eq_zero_of_same_ray_neg_smul_right eq_zero_of_sameRay_neg_smul_right
+/- warning: eq_zero_of_same_ray_self_neg -> eq_zero_of_sameRay_self_neg is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_4 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} [_inst_6 : NoZeroSMulDivisors.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4))))], (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4 x (Neg.neg.{u2} M (SubNegMonoid.toHasNeg.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))) x)) -> (Eq.{succ u2} M x (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))))))))
+but is expected to have type
+ forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_4 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] {x : M} [_inst_6 : NoZeroSMulDivisors.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4))))], (SameRay.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4 x (Neg.neg.{u1} M (NegZeroClass.toNeg.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) x)) -> (Eq.{succ u1} M x (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))))))
+Case conversion may be inaccurate. Consider using '#align eq_zero_of_same_ray_self_neg eq_zero_of_sameRay_self_negₓ'. -/
/-- If a vector is in the same ray as its negation, that vector is zero. -/
theorem eq_zero_of_sameRay_self_neg [NoZeroSMulDivisors R M] (h : SameRay R x (-x)) : x = 0 :=
by
@@ -430,6 +715,12 @@ namespace RayVector
instance {R : Type _} : Neg (RayVector R M) :=
⟨fun v => ⟨-v, neg_ne_zero.2 v.Prop⟩⟩
+/- warning: ray_vector.coe_neg -> RayVector.coe_neg is a dubious translation:
+lean 3 declaration is
+ forall {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] {R : Type.{u2}} (v : RayVector.{u2, u1} R M (AddZeroClass.toHasZero.{u1} M (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_2)))))), Eq.{succ u1} M ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (RayVector.{u2, u1} R M (AddZeroClass.toHasZero.{u1} M (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_2)))))) M (HasLiftT.mk.{succ u1, succ u1} (RayVector.{u2, u1} R M (AddZeroClass.toHasZero.{u1} M (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_2)))))) M (CoeTCₓ.coe.{succ u1, succ u1} (RayVector.{u2, u1} R M (AddZeroClass.toHasZero.{u1} M (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_2)))))) M (coeBase.{succ u1, succ u1} (RayVector.{u2, u1} R M (AddZeroClass.toHasZero.{u1} M (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_2)))))) M (RayVector.coe.{u2, u1} R M (AddZeroClass.toHasZero.{u1} M (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_2))))))))) (Neg.neg.{u1} (RayVector.{u2, u1} R M (AddZeroClass.toHasZero.{u1} M (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_2)))))) (RayVector.hasNeg.{u1, u2} M _inst_2 R) v)) (Neg.neg.{u1} M (SubNegMonoid.toHasNeg.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_2))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (RayVector.{u2, u1} R M (AddZeroClass.toHasZero.{u1} M (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_2)))))) M (HasLiftT.mk.{succ u1, succ u1} (RayVector.{u2, u1} R M (AddZeroClass.toHasZero.{u1} M (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_2)))))) M (CoeTCₓ.coe.{succ u1, succ u1} (RayVector.{u2, u1} R M (AddZeroClass.toHasZero.{u1} M (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_2)))))) M (coeBase.{succ u1, succ u1} (RayVector.{u2, u1} R M (AddZeroClass.toHasZero.{u1} M (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_2)))))) M (RayVector.coe.{u2, u1} R M (AddZeroClass.toHasZero.{u1} M (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_2))))))))) v))
+but is expected to have type
+ forall {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] {R : Type.{u2}} (v : RayVector.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2)))))), Eq.{succ u1} M (Subtype.val.{succ u1} M (fun (v : M) => Ne.{succ u1} M v (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2)))))))) (Neg.neg.{u1} (RayVector.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2)))))) (RayVector.instNegRayVectorToZeroToNegZeroClassToSubNegZeroMonoidToSubtractionMonoidToDivisionAddCommMonoid.{u1, u2} M _inst_2 R) v)) (Neg.neg.{u1} M (NegZeroClass.toNeg.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Subtype.val.{succ u1} M (fun (v : M) => Ne.{succ u1} M v (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2)))))))) v))
+Case conversion may be inaccurate. Consider using '#align ray_vector.coe_neg RayVector.coe_negₓ'. -/
/-- Negating a nonzero vector commutes with coercion to the underlying module. -/
@[simp, norm_cast]
theorem coe_neg {R : Type _} (v : RayVector R M) : ↑(-v) = -(v : M) :=
@@ -442,6 +733,12 @@ instance {R : Type _} : InvolutiveNeg (RayVector R M)
neg := Neg.neg
neg_neg v := by rw [Subtype.ext_iff, coe_neg, coe_neg, neg_neg]
+/- warning: ray_vector.equiv_neg_iff -> RayVector.equiv_neg_iff is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_4 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {v₁ : RayVector.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))))} {v₂ : RayVector.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))))}, Iff (HasEquivₓ.Equiv.{succ u2} (RayVector.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))))) (setoidHasEquiv.{succ u2} (RayVector.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))))) (RayVector.setoid.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4)) (Neg.neg.{u2} (RayVector.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))))) (RayVector.hasNeg.{u2, u1} M _inst_2 R) v₁) (Neg.neg.{u2} (RayVector.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))))) (RayVector.hasNeg.{u2, u1} M _inst_2 R) v₂)) (HasEquivₓ.Equiv.{succ u2} (RayVector.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))))) (setoidHasEquiv.{succ u2} (RayVector.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))))) (RayVector.setoid.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4)) v₁ v₂)
+but is expected to have type
+ forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_4 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] {v₁ : RayVector.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2)))))} {v₂ : RayVector.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2)))))}, Iff (HasEquiv.Equiv.{succ u1, 0} (RayVector.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2)))))) (instHasEquiv.{succ u1} (RayVector.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2)))))) (RayVector.Setoid.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4)) (Neg.neg.{u1} (RayVector.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2)))))) (RayVector.instNegRayVectorToZeroToNegZeroClassToSubNegZeroMonoidToSubtractionMonoidToDivisionAddCommMonoid.{u1, u2} M _inst_2 R) v₁) (Neg.neg.{u1} (RayVector.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2)))))) (RayVector.instNegRayVectorToZeroToNegZeroClassToSubNegZeroMonoidToSubtractionMonoidToDivisionAddCommMonoid.{u1, u2} M _inst_2 R) v₂)) (HasEquiv.Equiv.{succ u1, 0} (RayVector.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2)))))) (instHasEquiv.{succ u1} (RayVector.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2)))))) (RayVector.Setoid.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4)) v₁ v₂)
+Case conversion may be inaccurate. Consider using '#align ray_vector.equiv_neg_iff RayVector.equiv_neg_iffₓ'. -/
/-- If two nonzero vectors are equivalent, so are their negations. -/
@[simp]
theorem equiv_neg_iff {v₁ v₂ : RayVector R M} : -v₁ ≈ -v₂ ↔ v₁ ≈ v₂ :=
@@ -456,6 +753,12 @@ variable (R)
instance : Neg (Module.Ray R M) :=
⟨Quotient.map (fun v => -v) fun v₁ v₂ => RayVector.equiv_neg_iff.2⟩
+/- warning: neg_ray_of_ne_zero -> neg_rayOfNeZero is a dubious translation:
+lean 3 declaration is
+ forall (R : Type.{u1}) [_inst_1 : StrictOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_4 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] (v : M) (h : Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))), Eq.{succ u2} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Neg.neg.{u2} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Module.Ray.hasNeg.{u1, u2} R _inst_1 M _inst_2 _inst_4) (rayOfNeZero.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4 v h)) (rayOfNeZero.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4 (Neg.neg.{u2} M (SubNegMonoid.toHasNeg.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))) v) (Iff.mpr (Ne.{succ u2} M (Neg.neg.{u2} M (SubNegMonoid.toHasNeg.{u2} M (SubtractionMonoid.toSubNegMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))) v) (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (SubtractionMonoid.toSubNegMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))))))))) (Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (SubtractionMonoid.toSubNegMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))))))))) (neg_ne_zero.{u2} M (AddGroup.toSubtractionMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) v) h))
+but is expected to have type
+ forall (R : Type.{u1}) [_inst_1 : StrictOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_4 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] (v : M) (h : Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2)))))))), Eq.{succ u2} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Neg.neg.{u2} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (instNegRayToStrictOrderedCommSemiringToAddCommMonoid.{u1, u2} R _inst_1 M _inst_2 _inst_4) (rayOfNeZero.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4 v h)) (rayOfNeZero.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4 (Neg.neg.{u2} M (NegZeroClass.toNeg.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) v) (Iff.mpr (Ne.{succ u2} M (Neg.neg.{u2} M (NegZeroClass.toNeg.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) v) (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2)))))))) (Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2)))))))) (neg_ne_zero.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2)) v) h))
+Case conversion may be inaccurate. Consider using '#align neg_ray_of_ne_zero neg_rayOfNeZeroₓ'. -/
/-- The ray given by the negation of a nonzero vector. -/
@[simp]
theorem neg_rayOfNeZero (v : M) (h : v ≠ 0) :
@@ -475,6 +778,12 @@ instance : InvolutiveNeg (Module.Ray R M)
variable {R M}
+/- warning: module.ray.ne_neg_self -> Module.Ray.ne_neg_self is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_4 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_6 : NoZeroSMulDivisors.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4))))] (x : Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4), Ne.{succ u2} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) x (Neg.neg.{u2} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Module.Ray.hasNeg.{u1, u2} R _inst_1 M _inst_2 _inst_4) x)
+but is expected to have type
+ forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_4 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] [_inst_6 : NoZeroSMulDivisors.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4))))] (x : Module.Ray.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4), Ne.{succ u1} (Module.Ray.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4) x (Neg.neg.{u1} (Module.Ray.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4) (instNegRayToStrictOrderedCommSemiringToAddCommMonoid.{u2, u1} R _inst_1 M _inst_2 _inst_4) x)
+Case conversion may be inaccurate. Consider using '#align module.ray.ne_neg_self Module.Ray.ne_neg_selfₓ'. -/
/-- A ray does not equal its own negation. -/
theorem ne_neg_self [NoZeroSMulDivisors R M] (x : Module.Ray R M) : x ≠ -x :=
by
@@ -483,12 +792,24 @@ theorem ne_neg_self [NoZeroSMulDivisors R M] (x : Module.Ray R M) : x ≠ -x :=
exact mt eq_zero_of_sameRay_self_neg hx
#align module.ray.ne_neg_self Module.Ray.ne_neg_self
+/- warning: module.ray.neg_units_smul -> Module.Ray.neg_units_smul is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_4 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] (u : Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (v : Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4), Eq.{succ u2} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (SMul.smul.{u1, u2} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (MulAction.toHasSmul.{u1, u2} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (DivInvMonoid.toMonoid.{u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (Group.toDivInvMonoid.{u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (Units.group.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))))) (Module.Ray.mulAction.{u1, u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4 (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (Units.group.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (Units.distribMulAction.{u1, u2} R M (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)) (Module.toDistribMulAction.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4)) (Units.smulCommClass_right.{u1, u1, u2} R R M (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4)))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4)))) (smulCommClass_self.{u1, u2} R M (CommRing.toCommMonoid.{u1} R (StrictOrderedCommRing.toCommRing.{u1} R _inst_1)) (MulActionWithZero.toMulAction.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4)))))) (Neg.neg.{u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (Units.hasNeg.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (NonUnitalNonAssocRing.toHasDistribNeg.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))))) u) v) (Neg.neg.{u2} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Module.Ray.hasNeg.{u1, u2} R _inst_1 M _inst_2 _inst_4) (SMul.smul.{u1, u2} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (MulAction.toHasSmul.{u1, u2} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (DivInvMonoid.toMonoid.{u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (Group.toDivInvMonoid.{u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (Units.group.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))))) (Module.Ray.mulAction.{u1, u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4 (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (Units.group.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (Units.distribMulAction.{u1, u2} R M (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)) (Module.toDistribMulAction.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4)) (Units.smulCommClass_right.{u1, u1, u2} R R M (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4)))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4)))) (smulCommClass_self.{u1, u2} R M (CommRing.toCommMonoid.{u1} R (StrictOrderedCommRing.toCommRing.{u1} R _inst_1)) (MulActionWithZero.toMulAction.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4)))))) u v))
+but is expected to have type
+ forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_4 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] (u : Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))))) (v : Module.Ray.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4), Eq.{succ u1} (Module.Ray.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4) (HSMul.hSMul.{u2, u1, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))))) (Module.Ray.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4) (Module.Ray.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4) (instHSMul.{u2, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))))) (Module.Ray.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4) (MulAction.toSMul.{u2, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))))) (Module.Ray.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4) (DivInvMonoid.toMonoid.{u2} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))))) (Group.toDivInvMonoid.{u2} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))))) (Units.instGroupUnits.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))))))) (instMulActionRayToMonoidToDivInvMonoid.{u2, u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4 (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))))) (Units.instGroupUnits.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))))) (Units.instDistribMulActionUnitsToMonoidToDivInvMonoidInstGroupUnits.{u2, u1} R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))))) (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)) (Module.toDistribMulAction.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4)) (Units.smulCommClass_right.{u2, u2, u1} R R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))))) (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4)))) (SMulZeroClass.toSMul.{u2, u1} R M (AddZeroClass.toZero.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)))) (DistribSMul.toSMulZeroClass.{u2, u1} R M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (DistribMulAction.toDistribSMul.{u2, u1} R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))))) (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)) (Module.toDistribMulAction.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4)))) (smulCommClass_self.{u2, u1} R M (CommRing.toCommMonoid.{u2} R (StrictOrderedCommRing.toCommRing.{u2} R _inst_1)) (MulActionWithZero.toMulAction.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4))))))) (Neg.neg.{u2} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))))) (Units.instNegUnits.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))))) (NonUnitalNonAssocRing.toHasDistribNeg.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (StrictOrderedRing.toRing.{u2} R (StrictOrderedCommRing.toStrictOrderedRing.{u2} R _inst_1)))))) u) v) (Neg.neg.{u1} (Module.Ray.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4) (instNegRayToStrictOrderedCommSemiringToAddCommMonoid.{u2, u1} R _inst_1 M _inst_2 _inst_4) (HSMul.hSMul.{u2, u1, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))))) (Module.Ray.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4) (Module.Ray.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4) (instHSMul.{u2, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))))) (Module.Ray.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4) (MulAction.toSMul.{u2, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))))) (Module.Ray.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4) (DivInvMonoid.toMonoid.{u2} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))))) (Group.toDivInvMonoid.{u2} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))))) (Units.instGroupUnits.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))))))) (instMulActionRayToMonoidToDivInvMonoid.{u2, u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4 (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))))) (Units.instGroupUnits.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))))) (Units.instDistribMulActionUnitsToMonoidToDivInvMonoidInstGroupUnits.{u2, u1} R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))))) (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)) (Module.toDistribMulAction.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4)) (Units.smulCommClass_right.{u2, u2, u1} R R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))))) (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4)))) (SMulZeroClass.toSMul.{u2, u1} R M (AddZeroClass.toZero.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)))) (DistribSMul.toSMulZeroClass.{u2, u1} R M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (DistribMulAction.toDistribSMul.{u2, u1} R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))))) (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)) (Module.toDistribMulAction.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4)))) (smulCommClass_self.{u2, u1} R M (CommRing.toCommMonoid.{u2} R (StrictOrderedCommRing.toCommRing.{u2} R _inst_1)) (MulActionWithZero.toMulAction.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4))))))) u v))
+Case conversion may be inaccurate. Consider using '#align module.ray.neg_units_smul Module.Ray.neg_units_smulₓ'. -/
theorem neg_units_smul (u : Rˣ) (v : Module.Ray R M) : -u • v = -(u • v) :=
by
induction v using Module.Ray.ind
simp only [smul_rayOfNeZero, Units.smul_def, Units.val_neg, neg_smul, neg_rayOfNeZero]
#align module.ray.neg_units_smul Module.Ray.neg_units_smul
+/- warning: module.ray.units_smul_of_neg -> Module.Ray.units_smul_of_neg is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_4 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] (u : Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))), (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) R (HasLiftT.mk.{succ u1, succ u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) R (CoeTCₓ.coe.{succ u1, succ u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) R (coeBase.{succ u1, succ u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) R (Units.hasCoe.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))))) u) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))))))))) -> (forall (v : Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4), Eq.{succ u2} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (SMul.smul.{u1, u2} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (MulAction.toHasSmul.{u1, u2} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (DivInvMonoid.toMonoid.{u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (Group.toDivInvMonoid.{u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (Units.group.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))))) (Module.Ray.mulAction.{u1, u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4 (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (Units.group.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (Units.distribMulAction.{u1, u2} R M (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)) (Module.toDistribMulAction.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4)) (Units.smulCommClass_right.{u1, u1, u2} R R M (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4)))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4)))) (smulCommClass_self.{u1, u2} R M (CommRing.toCommMonoid.{u1} R (StrictOrderedCommRing.toCommRing.{u1} R _inst_1)) (MulActionWithZero.toMulAction.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4)))))) u v) (Neg.neg.{u2} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Module.Ray.hasNeg.{u1, u2} R _inst_1 M _inst_2 _inst_4) v))
+but is expected to have type
+ forall {R : Type.{u2}} [_inst_1 : StrictOrderedCommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_4 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] (u : Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))))), (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (StrictOrderedCommRing.toStrictOrderedRing.{u2} R _inst_1)))) (Units.val.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))))) u) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))))))) -> (forall (v : Module.Ray.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4), Eq.{succ u1} (Module.Ray.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4) (HSMul.hSMul.{u2, u1, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))))) (Module.Ray.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4) (Module.Ray.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4) (instHSMul.{u2, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))))) (Module.Ray.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4) (MulAction.toSMul.{u2, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))))) (Module.Ray.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4) (DivInvMonoid.toMonoid.{u2} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))))) (Group.toDivInvMonoid.{u2} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))))) (Units.instGroupUnits.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))))))) (instMulActionRayToMonoidToDivInvMonoid.{u2, u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4 (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))))) (Units.instGroupUnits.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))))) (Units.instDistribMulActionUnitsToMonoidToDivInvMonoidInstGroupUnits.{u2, u1} R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))))) (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)) (Module.toDistribMulAction.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4)) (Units.smulCommClass_right.{u2, u2, u1} R R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))))) (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4)))) (SMulZeroClass.toSMul.{u2, u1} R M (AddZeroClass.toZero.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)))) (DistribSMul.toSMulZeroClass.{u2, u1} R M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (DistribMulAction.toDistribSMul.{u2, u1} R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))))) (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)) (Module.toDistribMulAction.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4)))) (smulCommClass_self.{u2, u1} R M (CommRing.toCommMonoid.{u2} R (StrictOrderedCommRing.toCommRing.{u2} R _inst_1)) (MulActionWithZero.toMulAction.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1)))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4))))))) u v) (Neg.neg.{u1} (Module.Ray.{u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u2} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4) (instNegRayToStrictOrderedCommSemiringToAddCommMonoid.{u2, u1} R _inst_1 M _inst_2 _inst_4) v))
+Case conversion may be inaccurate. Consider using '#align module.ray.units_smul_of_neg Module.Ray.units_smul_of_negₓ'. -/
/-- Scaling by a negative unit is negation. -/
theorem units_smul_of_neg (u : Rˣ) (hu : (u : R) < 0) (v : Module.Ray R M) : u • v = -v :=
by
@@ -496,6 +817,12 @@ theorem units_smul_of_neg (u : Rˣ) (hu : (u : R) < 0) (v : Module.Ray R M) : u
rwa [Units.val_neg, Right.neg_pos_iff]
#align module.ray.units_smul_of_neg Module.Ray.units_smul_of_neg
+/- warning: module.ray.map_neg -> Module.Ray.map_neg is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u1} R] {M : Type.{u2}} {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : AddCommGroup.{u3} N] [_inst_4 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u3} N _inst_3)] (f : LinearEquiv.{u1, u1, u2, u3} R R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_3) _inst_4 _inst_5) (v : Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4), Eq.{succ u3} (Module.Ray.{u1, u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u3} N _inst_3) _inst_5) (coeFn.{max 1 (max (succ u2) (succ u3)) (succ u3) (succ u2), max (succ u2) (succ u3)} (Equiv.{succ u2, succ u3} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Module.Ray.{u1, u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u3} N _inst_3) _inst_5)) (fun (_x : Equiv.{succ u2, succ u3} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Module.Ray.{u1, u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u3} N _inst_3) _inst_5)) => (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) -> (Module.Ray.{u1, u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u3} N _inst_3) _inst_5)) (Equiv.hasCoeToFun.{succ u2, succ u3} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Module.Ray.{u1, u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u3} N _inst_3) _inst_5)) (Module.Ray.map.{u1, u2, u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4 N (AddCommGroup.toAddCommMonoid.{u3} N _inst_3) _inst_5 f) (Neg.neg.{u2} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Module.Ray.hasNeg.{u1, u2} R _inst_1 M _inst_2 _inst_4) v)) (Neg.neg.{u3} (Module.Ray.{u1, u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u3} N _inst_3) _inst_5) (Module.Ray.hasNeg.{u1, u3} R _inst_1 N _inst_3 _inst_5) (coeFn.{max 1 (max (succ u2) (succ u3)) (succ u3) (succ u2), max (succ u2) (succ u3)} (Equiv.{succ u2, succ u3} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Module.Ray.{u1, u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u3} N _inst_3) _inst_5)) (fun (_x : Equiv.{succ u2, succ u3} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Module.Ray.{u1, u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u3} N _inst_3) _inst_5)) => (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) -> (Module.Ray.{u1, u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u3} N _inst_3) _inst_5)) (Equiv.hasCoeToFun.{succ u2, succ u3} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Module.Ray.{u1, u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u3} N _inst_3) _inst_5)) (Module.Ray.map.{u1, u2, u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4 N (AddCommGroup.toAddCommMonoid.{u3} N _inst_3) _inst_5 f) v))
+but is expected to have type
+ forall {R : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u3} R] {M : Type.{u2}} {N : Type.{u1}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : AddCommGroup.{u1} N] [_inst_4 : Module.{u3, u2} R M (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_5 : Module.{u3, u1} R N (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} N _inst_3)] (f : LinearEquiv.{u3, u3, u2, u1} R R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))))) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1)))) (RingHomInvPair.ids.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1)))) M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_4 _inst_5) (v : Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4), Eq.{succ u1} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) => Module.Ray.{u3, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_5) (Neg.neg.{u2} (Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (instNegRayToStrictOrderedCommSemiringToAddCommMonoid.{u3, u2} R _inst_1 M _inst_2 _inst_4) v)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Equiv.{succ u2, succ u1} (Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Module.Ray.{u3, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_5)) (Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (fun (_x : Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) => Module.Ray.{u3, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_5) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} (Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Module.Ray.{u3, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_5)) (Module.Ray.map.{u3, u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4 N (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_5 f) (Neg.neg.{u2} (Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (instNegRayToStrictOrderedCommSemiringToAddCommMonoid.{u3, u2} R _inst_1 M _inst_2 _inst_4) v)) (Neg.neg.{u1} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) => Module.Ray.{u3, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_5) v) (instNegRayToStrictOrderedCommSemiringToAddCommMonoid.{u3, u1} R _inst_1 N _inst_3 _inst_5) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Equiv.{succ u2, succ u1} (Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Module.Ray.{u3, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_5)) (Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (fun (_x : Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) => Module.Ray.{u3, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_5) _x) (Equiv.instFunLikeEquiv.{succ u2, succ u1} (Module.Ray.{u3, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4) (Module.Ray.{u3, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) N (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_5)) (Module.Ray.map.{u3, u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4 N (AddCommGroup.toAddCommMonoid.{u1} N _inst_3) _inst_5 f) v))
+Case conversion may be inaccurate. Consider using '#align module.ray.map_neg Module.Ray.map_negₓ'. -/
@[simp]
protected theorem map_neg (f : M ≃ₗ[R] N) (v : Module.Ray R M) : map f (-v) = -map f v :=
by
@@ -513,14 +840,26 @@ variable {R : Type _} [LinearOrderedCommRing R]
variable {M : Type _} [AddCommGroup M] [Module R M]
+/- warning: same_ray_of_mem_orbit -> sameRay_of_mem_orbit is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {v₁ : M} {v₂ : M}, (Membership.Mem.{u2, u2} M (Set.{u2} M) (Set.hasMem.{u2} M) v₁ (MulAction.orbit.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedRing.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))) (Units.group.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedRing.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedRing.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))) (Units.group.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedRing.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedRing.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))) (Subgroup.setLike.{u1} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedRing.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))) (Units.group.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedRing.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))))) (Units.posSubgroup.{u1} R (LinearOrderedRing.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) M (DivInvMonoid.toMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedRing.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))) (Units.group.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedRing.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedRing.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))) (Units.group.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedRing.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedRing.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))) (Subgroup.setLike.{u1} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedRing.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))) (Units.group.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedRing.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))))) (Units.posSubgroup.{u1} R (LinearOrderedRing.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (Group.toDivInvMonoid.{u1} (coeSort.{succ u1, succ (succ u1)} (Subgroup.{u1} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedRing.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))) (Units.group.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedRing.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Subgroup.{u1} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedRing.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))) (Units.group.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedRing.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedRing.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))) (Subgroup.setLike.{u1} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedRing.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))) (Units.group.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedRing.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))))) (Units.posSubgroup.{u1} R (LinearOrderedRing.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (Subgroup.toGroup.{u1} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedRing.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))) (Units.group.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedRing.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))) (Units.posSubgroup.{u1} R (LinearOrderedRing.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))) (Subgroup.mulAction.{u1, u2} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedRing.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))) (Units.group.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedRing.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))) M (Units.mulAction.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedRing.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))) (MulActionWithZero.toMulAction.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))) (Units.posSubgroup.{u1} R (LinearOrderedRing.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) v₂)) -> (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 v₁ v₂)
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {v₁ : M} {v₂ : M}, (Membership.mem.{u2, u2} M (Set.{u2} M) (Set.instMembershipSet.{u2} M) v₁ (MulAction.orbit.{u1, u2} (Subtype.{succ u1} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))))))) (fun (x : Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))))))) => Membership.mem.{u1, u1} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))))))) (Subgroup.{u1} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))))))) (Units.instGroupUnits.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1)))))))) (SetLike.instMembership.{u1, u1} (Subgroup.{u1} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))))))) (Units.instGroupUnits.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1)))))))) (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))))))) (Subgroup.instSetLikeSubgroup.{u1} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))))))) (Units.instGroupUnits.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))))))))) x (Units.posSubgroup.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))))) M (Submonoid.toMonoid.{u1} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))))))) (DivInvMonoid.toMonoid.{u1} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))))))) (Group.toDivInvMonoid.{u1} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))))))) (Units.instGroupUnits.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))))))))) (Subgroup.toSubmonoid.{u1} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))))))) (Units.instGroupUnits.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))))))) (Units.posSubgroup.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))))) (Subgroup.instMulActionSubtypeMemSubgroupInstMembershipInstSetLikeSubgroupToMonoidToMonoidToDivInvMonoidToSubmonoid.{u1, u2} (Units.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))))))) (Units.instGroupUnits.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))))))) M (Units.instMulActionUnitsToMonoidToDivInvMonoidInstGroupUnits.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1)))))) (MulActionWithZero.toMulAction.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))) (Units.posSubgroup.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1)))) v₂)) -> (SameRay.{u1, u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 v₁ v₂)
+Case conversion may be inaccurate. Consider using '#align same_ray_of_mem_orbit sameRay_of_mem_orbitₓ'. -/
/-- `same_ray` follows from membership of `mul_action.orbit` for the `units.pos_subgroup`. -/
theorem sameRay_of_mem_orbit {v₁ v₂ : M} (h : v₁ ∈ MulAction.orbit (Units.posSubgroup R) v₂) :
SameRay R v₁ v₂ :=
by
rcases h with ⟨⟨r, hr : 0 < (r : R)⟩, rfl : r • v₂ = v₁⟩
- exact sameRay_pos_smul_left _ hr
+ exact SameRay.sameRay_pos_smul_left _ hr
#align same_ray_of_mem_orbit sameRay_of_mem_orbit
+/- warning: units_inv_smul -> units_inv_smul is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] (u : Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (v : Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3), Eq.{succ u2} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SMul.smul.{u1, u2} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (MulAction.toHasSmul.{u1, u2} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (DivInvMonoid.toMonoid.{u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Group.toDivInvMonoid.{u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Units.group.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))) (Module.Ray.mulAction.{u1, u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Units.group.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Units.distribMulAction.{u1, u2} R M (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)) (Module.toDistribMulAction.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Units.smulCommClass_right.{u1, u1, u2} R R M (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) (smulCommClass_self.{u1, u2} R M (LinearOrderedCommRing.toCommMonoid.{u1} R _inst_1) (MulActionWithZero.toMulAction.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))))) (Inv.inv.{u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Units.hasInv.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) u) v) (SMul.smul.{u1, u2} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (MulAction.toHasSmul.{u1, u2} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (DivInvMonoid.toMonoid.{u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Group.toDivInvMonoid.{u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Units.group.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))) (Module.Ray.mulAction.{u1, u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Units.group.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Units.distribMulAction.{u1, u2} R M (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)) (Module.toDistribMulAction.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Units.smulCommClass_right.{u1, u1, u2} R R M (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) (smulCommClass_self.{u1, u2} R M (LinearOrderedCommRing.toCommMonoid.{u1} R _inst_1) (MulActionWithZero.toMulAction.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))))) u v)
+but is expected to have type
+ forall {R : Type.{u2}} [_inst_1 : LinearOrderedCommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] (u : Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (v : Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3), Eq.{succ u1} (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (HSMul.hSMul.{u2, u1, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (instHSMul.{u2, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (MulAction.toSMul.{u2, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (DivInvMonoid.toMonoid.{u2} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Group.toDivInvMonoid.{u2} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Units.instGroupUnits.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))))) (instMulActionRayToMonoidToDivInvMonoid.{u2, u1, u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Units.instGroupUnits.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Units.instDistribMulActionUnitsToMonoidToDivInvMonoidInstGroupUnits.{u2, u1} R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))))) (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)) (Module.toDistribMulAction.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)) (Units.smulCommClass_right.{u2, u2, u1} R R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))))) (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u2, u1} R M (AddZeroClass.toZero.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)))) (DistribSMul.toSMulZeroClass.{u2, u1} R M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (DistribMulAction.toDistribSMul.{u2, u1} R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))))) (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)) (Module.toDistribMulAction.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))) (smulCommClass_self.{u2, u1} R M (LinearOrderedCommRing.toCommMonoid.{u2} R _inst_1) (MulActionWithZero.toMulAction.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))))) (Inv.inv.{u2} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Units.instInvUnits.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) u) v) (HSMul.hSMul.{u2, u1, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (instHSMul.{u2, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (MulAction.toSMul.{u2, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (DivInvMonoid.toMonoid.{u2} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Group.toDivInvMonoid.{u2} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Units.instGroupUnits.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))))) (instMulActionRayToMonoidToDivInvMonoid.{u2, u1, u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Units.instGroupUnits.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Units.instDistribMulActionUnitsToMonoidToDivInvMonoidInstGroupUnits.{u2, u1} R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))))) (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)) (Module.toDistribMulAction.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)) (Units.smulCommClass_right.{u2, u2, u1} R R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))))) (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u2, u1} R M (AddZeroClass.toZero.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)))) (DistribSMul.toSMulZeroClass.{u2, u1} R M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (DistribMulAction.toDistribSMul.{u2, u1} R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))))) (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)) (Module.toDistribMulAction.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))) (smulCommClass_self.{u2, u1} R M (LinearOrderedCommRing.toCommMonoid.{u2} R _inst_1) (MulActionWithZero.toMulAction.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))))) u v)
+Case conversion may be inaccurate. Consider using '#align units_inv_smul units_inv_smulₓ'. -/
/-- Scaling by an inverse unit is the same as scaling by itself. -/
@[simp]
theorem units_inv_smul (u : Rˣ) (v : Module.Ray R M) : u⁻¹ • v = u • v :=
@@ -535,12 +874,24 @@ section
variable [NoZeroSMulDivisors R M]
+/- warning: same_ray_smul_right_iff -> sameRay_smul_right_iff is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))] {v : M} {r : R}, Iff (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 v (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r v)) (Or (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))))))) r) (Eq.{succ u2} M v (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))))
+but is expected to have type
+ forall {R : Type.{u2}} [_inst_1 : LinearOrderedCommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))] {v : M} {r : R}, Iff (SameRay.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 v (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))) r v)) (Or (LE.le.{u2} R (Preorder.toLE.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))))) r) (Eq.{succ u1} M v (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2)))))))))
+Case conversion may be inaccurate. Consider using '#align same_ray_smul_right_iff sameRay_smul_right_iffₓ'. -/
@[simp]
theorem sameRay_smul_right_iff {v : M} {r : R} : SameRay R v (r • v) ↔ 0 ≤ r ∨ v = 0 :=
⟨fun hrv => or_iff_not_imp_left.2 fun hr => eq_zero_of_sameRay_neg_smul_right (not_le.1 hr) hrv,
- or_imp.2 ⟨sameRay_nonneg_smul_right v, fun h => h.symm ▸ SameRay.zero_left _⟩⟩
+ or_imp.2 ⟨SameRay.sameRay_nonneg_smul_right v, fun h => h.symm ▸ SameRay.zero_left _⟩⟩
#align same_ray_smul_right_iff sameRay_smul_right_iff
+/- warning: same_ray_smul_right_iff_of_ne -> sameRay_smul_right_iff_of_ne is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))] {v : M}, (Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (forall {r : R}, (Ne.{succ u1} R r (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))))))) -> (Iff (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 v (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r v)) (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))))))) r)))
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))) (LinearOrderedRing.isDomain.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (SMulZeroClass.toSMul.{u1, u2} R M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))) (LinearOrderedRing.isDomain.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))] {v : M}, (Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2)))))))) -> (forall {r : R}, (Ne.{succ u1} R r (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))) (LinearOrderedRing.isDomain.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) -> (Iff (SameRay.{u1, u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 v (HSMul.hSMul.{u1, u2, u2} R M M (instHSMul.{u1, u2} R M (SMulZeroClass.toSMul.{u1, u2} R M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))) (LinearOrderedRing.isDomain.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) r v)) (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (StrictOrderedRing.toPartialOrder.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))) (LinearOrderedRing.isDomain.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))) r)))
+Case conversion may be inaccurate. Consider using '#align same_ray_smul_right_iff_of_ne sameRay_smul_right_iff_of_neₓ'. -/
/-- A nonzero vector is in the same ray as a multiple of itself if and only if that multiple
is positive. -/
theorem sameRay_smul_right_iff_of_ne {v : M} (hv : v ≠ 0) {r : R} (hr : r ≠ 0) :
@@ -548,38 +899,80 @@ theorem sameRay_smul_right_iff_of_ne {v : M} (hv : v ≠ 0) {r : R} (hr : r ≠
simp only [sameRay_smul_right_iff, hv, or_false_iff, hr.symm.le_iff_lt]
#align same_ray_smul_right_iff_of_ne sameRay_smul_right_iff_of_ne
+/- warning: same_ray_smul_left_iff -> sameRay_smul_left_iff is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))] {v : M} {r : R}, Iff (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r v) v) (Or (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))))))) r) (Eq.{succ u2} M v (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))))
+but is expected to have type
+ forall {R : Type.{u2}} [_inst_1 : LinearOrderedCommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))] {v : M} {r : R}, Iff (SameRay.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))) r v) v) (Or (LE.le.{u2} R (Preorder.toLE.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))))) r) (Eq.{succ u1} M v (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2)))))))))
+Case conversion may be inaccurate. Consider using '#align same_ray_smul_left_iff sameRay_smul_left_iffₓ'. -/
@[simp]
theorem sameRay_smul_left_iff {v : M} {r : R} : SameRay R (r • v) v ↔ 0 ≤ r ∨ v = 0 :=
- sameRay_comm.trans sameRay_smul_right_iff
+ SameRay.sameRay_comm.trans sameRay_smul_right_iff
#align same_ray_smul_left_iff sameRay_smul_left_iff
+/- warning: same_ray_smul_left_iff_of_ne -> sameRay_smul_left_iff_of_ne is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))] {v : M}, (Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (forall {r : R}, (Ne.{succ u1} R r (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))))))) -> (Iff (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r v) v) (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))))))) r)))
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))) (LinearOrderedRing.isDomain.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (SMulZeroClass.toSMul.{u1, u2} R M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))) (LinearOrderedRing.isDomain.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))] {v : M}, (Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2)))))))) -> (forall {r : R}, (Ne.{succ u1} R r (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))) (LinearOrderedRing.isDomain.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) -> (Iff (SameRay.{u1, u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (HSMul.hSMul.{u1, u2, u2} R M M (instHSMul.{u1, u2} R M (SMulZeroClass.toSMul.{u1, u2} R M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))) (LinearOrderedRing.isDomain.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) r v) v) (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (StrictOrderedRing.toPartialOrder.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))) (LinearOrderedRing.isDomain.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))) r)))
+Case conversion may be inaccurate. Consider using '#align same_ray_smul_left_iff_of_ne sameRay_smul_left_iff_of_neₓ'. -/
/-- A multiple of a nonzero vector is in the same ray as that vector if and only if that multiple
is positive. -/
theorem sameRay_smul_left_iff_of_ne {v : M} (hv : v ≠ 0) {r : R} (hr : r ≠ 0) :
SameRay R (r • v) v ↔ 0 < r :=
- sameRay_comm.trans (sameRay_smul_right_iff_of_ne hv hr)
+ SameRay.sameRay_comm.trans (sameRay_smul_right_iff_of_ne hv hr)
#align same_ray_smul_left_iff_of_ne sameRay_smul_left_iff_of_ne
+/- warning: same_ray_neg_smul_right_iff -> sameRay_neg_smul_right_iff is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))] {v : M} {r : R}, Iff (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (Neg.neg.{u2} M (SubNegMonoid.toHasNeg.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))) v) (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r v)) (Or (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))) r (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))))))) (Eq.{succ u2} M v (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))))
+but is expected to have type
+ forall {R : Type.{u2}} [_inst_1 : LinearOrderedCommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))] {v : M} {r : R}, Iff (SameRay.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 (Neg.neg.{u1} M (NegZeroClass.toNeg.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) v) (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))) r v)) (Or (LE.le.{u2} R (Preorder.toLE.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) r (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1)))))))) (Eq.{succ u1} M v (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2)))))))))
+Case conversion may be inaccurate. Consider using '#align same_ray_neg_smul_right_iff sameRay_neg_smul_right_iffₓ'. -/
@[simp]
theorem sameRay_neg_smul_right_iff {v : M} {r : R} : SameRay R (-v) (r • v) ↔ r ≤ 0 ∨ v = 0 := by
rw [← sameRay_neg_iff, neg_neg, ← neg_smul, sameRay_smul_right_iff, neg_nonneg]
#align same_ray_neg_smul_right_iff sameRay_neg_smul_right_iff
+/- warning: same_ray_neg_smul_right_iff_of_ne -> sameRay_neg_smul_right_iff_of_ne is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))] {v : M} {r : R}, (Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (Ne.{succ u1} R r (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))))))) -> (Iff (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (Neg.neg.{u2} M (SubNegMonoid.toHasNeg.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))) v) (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r v)) (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))) r (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))))))))
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))) (LinearOrderedRing.isDomain.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (SMulZeroClass.toSMul.{u1, u2} R M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))) (LinearOrderedRing.isDomain.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))] {v : M} {r : R}, (Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2)))))))) -> (Ne.{succ u1} R r (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))) (LinearOrderedRing.isDomain.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) -> (Iff (SameRay.{u1, u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (Neg.neg.{u2} M (NegZeroClass.toNeg.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) v) (HSMul.hSMul.{u1, u2, u2} R M M (instHSMul.{u1, u2} R M (SMulZeroClass.toSMul.{u1, u2} R M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))) (LinearOrderedRing.isDomain.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) r v)) (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (StrictOrderedRing.toPartialOrder.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) r (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))) (LinearOrderedRing.isDomain.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))))
+Case conversion may be inaccurate. Consider using '#align same_ray_neg_smul_right_iff_of_ne sameRay_neg_smul_right_iff_of_neₓ'. -/
theorem sameRay_neg_smul_right_iff_of_ne {v : M} {r : R} (hv : v ≠ 0) (hr : r ≠ 0) :
SameRay R (-v) (r • v) ↔ r < 0 := by
simp only [sameRay_neg_smul_right_iff, hv, or_false_iff, hr.le_iff_lt]
#align same_ray_neg_smul_right_iff_of_ne sameRay_neg_smul_right_iff_of_ne
+/- warning: same_ray_neg_smul_left_iff -> sameRay_neg_smul_left_iff is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))] {v : M} {r : R}, Iff (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r v) (Neg.neg.{u2} M (SubNegMonoid.toHasNeg.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))) v)) (Or (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))) r (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))))))) (Eq.{succ u2} M v (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))))
+but is expected to have type
+ forall {R : Type.{u2}} [_inst_1 : LinearOrderedCommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))] {v : M} {r : R}, Iff (SameRay.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))) r v) (Neg.neg.{u1} M (NegZeroClass.toNeg.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) v)) (Or (LE.le.{u2} R (Preorder.toLE.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) r (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1)))))))) (Eq.{succ u1} M v (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2)))))))))
+Case conversion may be inaccurate. Consider using '#align same_ray_neg_smul_left_iff sameRay_neg_smul_left_iffₓ'. -/
@[simp]
theorem sameRay_neg_smul_left_iff {v : M} {r : R} : SameRay R (r • v) (-v) ↔ r ≤ 0 ∨ v = 0 :=
- sameRay_comm.trans sameRay_neg_smul_right_iff
+ SameRay.sameRay_comm.trans sameRay_neg_smul_right_iff
#align same_ray_neg_smul_left_iff sameRay_neg_smul_left_iff
+/- warning: same_ray_neg_smul_left_iff_of_ne -> sameRay_neg_smul_left_iff_of_ne is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))] {v : M} {r : R}, (Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (Ne.{succ u1} R r (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))))))) -> (Iff (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r v) (Neg.neg.{u2} M (SubNegMonoid.toHasNeg.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))) v)) (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))) r (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))))))))
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))) (LinearOrderedRing.isDomain.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (SMulZeroClass.toSMul.{u1, u2} R M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))) (LinearOrderedRing.isDomain.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))] {v : M} {r : R}, (Ne.{succ u2} M v (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2)))))))) -> (Ne.{succ u1} R r (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))) (LinearOrderedRing.isDomain.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) -> (Iff (SameRay.{u1, u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (HSMul.hSMul.{u1, u2, u2} R M M (instHSMul.{u1, u2} R M (SMulZeroClass.toSMul.{u1, u2} R M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))) (LinearOrderedRing.isDomain.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) r v) (Neg.neg.{u2} M (NegZeroClass.toNeg.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) v)) (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (StrictOrderedRing.toPartialOrder.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) r (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u1} R (IsDomain.toCancelCommMonoidWithZero.{u1} R (StrictOrderedCommSemiring.toCommSemiring.{u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u1} R _inst_1))) (LinearOrderedRing.isDomain.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))))
+Case conversion may be inaccurate. Consider using '#align same_ray_neg_smul_left_iff_of_ne sameRay_neg_smul_left_iff_of_neₓ'. -/
theorem sameRay_neg_smul_left_iff_of_ne {v : M} {r : R} (hv : v ≠ 0) (hr : r ≠ 0) :
SameRay R (r • v) (-v) ↔ r < 0 :=
- sameRay_comm.trans <| sameRay_neg_smul_right_iff_of_ne hv hr
+ SameRay.sameRay_comm.trans <| sameRay_neg_smul_right_iff_of_ne hv hr
#align same_ray_neg_smul_left_iff_of_ne sameRay_neg_smul_left_iff_of_ne
+/- warning: units_smul_eq_self_iff -> units_smul_eq_self_iff is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))] {u : Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))} {v : Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3}, Iff (Eq.{succ u2} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SMul.smul.{u1, u2} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (MulAction.toHasSmul.{u1, u2} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (DivInvMonoid.toMonoid.{u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Group.toDivInvMonoid.{u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Units.group.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))) (Module.Ray.mulAction.{u1, u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Units.group.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Units.distribMulAction.{u1, u2} R M (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)) (Module.toDistribMulAction.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Units.smulCommClass_right.{u1, u1, u2} R R M (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) (smulCommClass_self.{u1, u2} R M (LinearOrderedCommRing.toCommMonoid.{u1} R _inst_1) (MulActionWithZero.toMulAction.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))))) u v) v) (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))))))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) R (HasLiftT.mk.{succ u1, succ u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) R (CoeTCₓ.coe.{succ u1, succ u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) R (coeBase.{succ u1, succ u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) R (Units.hasCoe.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) u))
+but is expected to have type
+ forall {R : Type.{u2}} [_inst_1 : LinearOrderedCommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))] {u : Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))} {v : Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3}, Iff (Eq.{succ u1} (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (HSMul.hSMul.{u2, u1, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (instHSMul.{u2, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (MulAction.toSMul.{u2, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (DivInvMonoid.toMonoid.{u2} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Group.toDivInvMonoid.{u2} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Units.instGroupUnits.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))))) (instMulActionRayToMonoidToDivInvMonoid.{u2, u1, u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Units.instGroupUnits.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Units.instDistribMulActionUnitsToMonoidToDivInvMonoidInstGroupUnits.{u2, u1} R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))))) (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)) (Module.toDistribMulAction.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)) (Units.smulCommClass_right.{u2, u2, u1} R R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))))) (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u2, u1} R M (AddZeroClass.toZero.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)))) (DistribSMul.toSMulZeroClass.{u2, u1} R M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (DistribMulAction.toDistribSMul.{u2, u1} R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))))) (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)) (Module.toDistribMulAction.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))) (smulCommClass_self.{u2, u1} R M (LinearOrderedCommRing.toCommMonoid.{u2} R _inst_1) (MulActionWithZero.toMulAction.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))))) u v) v) (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))))) (Units.val.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))))) u))
+Case conversion may be inaccurate. Consider using '#align units_smul_eq_self_iff units_smul_eq_self_iffₓ'. -/
@[simp]
theorem units_smul_eq_self_iff {u : Rˣ} {v : Module.Ray R M} : u • v = v ↔ (0 : R) < u :=
by
@@ -587,12 +980,24 @@ theorem units_smul_eq_self_iff {u : Rˣ} {v : Module.Ray R M} : u • v = v ↔
simp only [smul_rayOfNeZero, ray_eq_iff, Units.smul_def, sameRay_smul_left_iff_of_ne hv u.ne_zero]
#align units_smul_eq_self_iff units_smul_eq_self_iff
+/- warning: units_smul_eq_neg_iff -> units_smul_eq_neg_iff is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))] {u : Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))} {v : Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3}, Iff (Eq.{succ u2} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SMul.smul.{u1, u2} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (MulAction.toHasSmul.{u1, u2} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (DivInvMonoid.toMonoid.{u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Group.toDivInvMonoid.{u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Units.group.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))) (Module.Ray.mulAction.{u1, u2, u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Units.group.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (Units.distribMulAction.{u1, u2} R M (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)) (Module.toDistribMulAction.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Units.smulCommClass_right.{u1, u1, u2} R R M (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (StrictOrderedSemiring.toSemiring.{u1} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u1} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) (smulCommClass_self.{u1, u2} R M (LinearOrderedCommRing.toCommMonoid.{u1} R _inst_1) (MulActionWithZero.toMulAction.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))))) u v) (Neg.neg.{u2} (Module.Ray.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Module.Ray.hasNeg.{u1, u2} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1) M _inst_2 _inst_3) v)) (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) R (HasLiftT.mk.{succ u1, succ u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) R (CoeTCₓ.coe.{succ u1, succ u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) R (coeBase.{succ u1, succ u1} (Units.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) R (Units.hasCoe.{u1} R (Ring.toMonoid.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) u) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))))))))))
+but is expected to have type
+ forall {R : Type.{u2}} [_inst_1 : LinearOrderedCommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))] {u : Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))} {v : Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3}, Iff (Eq.{succ u1} (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (HSMul.hSMul.{u2, u1, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (instHSMul.{u2, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (MulAction.toSMul.{u2, u1} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (DivInvMonoid.toMonoid.{u2} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Group.toDivInvMonoid.{u2} (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Units.instGroupUnits.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))))) (instMulActionRayToMonoidToDivInvMonoid.{u2, u1, u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 (Units.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Units.instGroupUnits.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))))) (Units.instDistribMulActionUnitsToMonoidToDivInvMonoidInstGroupUnits.{u2, u1} R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))))) (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)) (Module.toDistribMulAction.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)) (Units.smulCommClass_right.{u2, u2, u1} R R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))))) (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u2, u1} R M (AddZeroClass.toZero.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)))) (DistribSMul.toSMulZeroClass.{u2, u1} R M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2))) (DistribMulAction.toDistribSMul.{u2, u1} R M (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))))) (AddCommMonoid.toAddMonoid.{u1} M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)) (Module.toDistribMulAction.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3)))) (smulCommClass_self.{u2, u1} R M (LinearOrderedCommRing.toCommMonoid.{u2} R _inst_1) (MulActionWithZero.toMulAction.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))))) u v) (Neg.neg.{u1} (Module.Ray.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3) (instNegRayToStrictOrderedCommSemiringToAddCommMonoid.{u2, u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u2} R _inst_1) M _inst_2 _inst_3) v)) (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (Units.val.{u2} R (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))))) u) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))))))
+Case conversion may be inaccurate. Consider using '#align units_smul_eq_neg_iff units_smul_eq_neg_iffₓ'. -/
@[simp]
theorem units_smul_eq_neg_iff {u : Rˣ} {v : Module.Ray R M} : u • v = -v ↔ ↑u < (0 : R) := by
rw [← neg_inj, neg_neg, ← Module.Ray.neg_units_smul, units_smul_eq_self_iff, Units.val_neg,
neg_pos]
#align units_smul_eq_neg_iff units_smul_eq_neg_iff
+/- warning: same_ray_or_same_ray_neg_iff_not_linear_independent -> sameRay_or_sameRay_neg_iff_not_linearIndependent is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))] {x : M} {y : M}, Iff (Or (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x y) (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x (Neg.neg.{u2} M (SubNegMonoid.toHasNeg.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))) y))) (Not (LinearIndependent.{0, u1, u2} (Fin (Nat.succ (Nat.succ (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))))) R M (Matrix.vecCons.{u2} M (Nat.succ (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) x (Matrix.vecCons.{u2} M (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) y (Matrix.vecEmpty.{u2} M))) (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))
+but is expected to have type
+ forall {R : Type.{u2}} [_inst_1 : LinearOrderedCommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))] {x : M} {y : M}, Iff (Or (SameRay.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 x y) (SameRay.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 x (Neg.neg.{u1} M (NegZeroClass.toNeg.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) y))) (Not (LinearIndependent.{0, u2, u1} (Fin (Nat.succ (Nat.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))) R M (Matrix.vecCons.{u1} M (Nat.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) x (Matrix.vecCons.{u1} M (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) y (Matrix.vecEmpty.{u1} M))) (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))
+Case conversion may be inaccurate. Consider using '#align same_ray_or_same_ray_neg_iff_not_linear_independent sameRay_or_sameRay_neg_iff_not_linearIndependentₓ'. -/
/-- Two vectors are in the same ray, or the first is in the same ray as the negation of the
second, if and only if they are not linearly independent. -/
theorem sameRay_or_sameRay_neg_iff_not_linearIndependent {x y : M} :
@@ -636,6 +1041,12 @@ theorem sameRay_or_sameRay_neg_iff_not_linearIndependent {x y : M} :
simp [hm]
#align same_ray_or_same_ray_neg_iff_not_linear_independent sameRay_or_sameRay_neg_iff_not_linearIndependent
+/- warning: same_ray_or_ne_zero_and_same_ray_neg_iff_not_linear_independent -> sameRay_or_ne_zero_and_sameRay_neg_iff_not_linearIndependent is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : LinearOrderedCommRing.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))) (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))] {x : M} {y : M}, Iff (Or (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x y) (And (Ne.{succ u2} M x (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) (And (Ne.{succ u2} M y (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x (Neg.neg.{u2} M (SubNegMonoid.toHasNeg.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))) y))))) (Not (LinearIndependent.{0, u1, u2} (Fin (Nat.succ (Nat.succ (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))))) R M (Matrix.vecCons.{u2} M (Nat.succ (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) x (Matrix.vecCons.{u2} M (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) y (Matrix.vecEmpty.{u2} M))) (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))
+but is expected to have type
+ forall {R : Type.{u2}} [_inst_1 : LinearOrderedCommRing.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] [_inst_4 : NoZeroSMulDivisors.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CancelCommMonoidWithZero.toCommMonoidWithZero.{u2} R (IsDomain.toCancelCommMonoidWithZero.{u2} R (StrictOrderedCommSemiring.toCommSemiring.{u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))) (LinearOrderedRing.isDomain.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))] {x : M} {y : M}, Iff (Or (SameRay.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 x y) (And (Ne.{succ u1} M x (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2)))))))) (And (Ne.{succ u1} M y (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2)))))))) (SameRay.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 x (Neg.neg.{u1} M (NegZeroClass.toNeg.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) y))))) (Not (LinearIndependent.{0, u2, u1} (Fin (Nat.succ (Nat.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))) R M (Matrix.vecCons.{u1} M (Nat.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) x (Matrix.vecCons.{u1} M (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) y (Matrix.vecEmpty.{u1} M))) (StrictOrderedSemiring.toSemiring.{u2} R (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} R (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} R (LinearOrderedCommRing.toLinearOrderedCommSemiring.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))
+Case conversion may be inaccurate. Consider using '#align same_ray_or_ne_zero_and_same_ray_neg_iff_not_linear_independent sameRay_or_ne_zero_and_sameRay_neg_iff_not_linearIndependentₓ'. -/
/-- Two vectors are in the same ray, or they are nonzero and the first is in the same ray as the
negation of the second, if and only if they are not linearly independent. -/
theorem sameRay_or_ne_zero_and_sameRay_neg_iff_not_linearIndependent {x y : M} :
@@ -656,17 +1067,35 @@ variable {R : Type _} [LinearOrderedField R]
variable {M : Type _} [AddCommGroup M] [Module R M] {x y v₁ v₂ : M}
+/- warning: same_ray.exists_pos_left -> SameRay.exists_pos_left is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x y) -> (Ne.{succ u2} M x (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (Ne.{succ u2} M y (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (Exists.{succ u1} R (fun (r : R) => And (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) r) (Eq.{succ u2} M (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r x) y)))
+but is expected to have type
+ forall {R : Type.{u2}} [_inst_1 : LinearOrderedField.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] {x : M} {y : M}, (SameRay.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 x y) -> (Ne.{succ u1} M x (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2)))))))) -> (Ne.{succ u1} M y (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2)))))))) -> (Exists.{succ u2} R (fun (r : R) => And (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R (LinearOrderedField.toLinearOrderedCommRing.{u2} R _inst_1)))))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))))) r) (Eq.{succ u1} M (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))) r x) y)))
+Case conversion may be inaccurate. Consider using '#align same_ray.exists_pos_left SameRay.exists_pos_leftₓ'. -/
theorem exists_pos_left (h : SameRay R x y) (hx : x ≠ 0) (hy : y ≠ 0) :
∃ r : R, 0 < r ∧ r • x = y :=
let ⟨r₁, r₂, hr₁, hr₂, h⟩ := h.exists_pos hx hy
⟨r₂⁻¹ * r₁, mul_pos (inv_pos.2 hr₂) hr₁, by rw [mul_smul, h, inv_smul_smul₀ hr₂.ne']⟩
#align same_ray.exists_pos_left SameRay.exists_pos_left
+/- warning: same_ray.exists_pos_right -> SameRay.exists_pos_right is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x y) -> (Ne.{succ u2} M x (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (Ne.{succ u2} M y (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (Exists.{succ u1} R (fun (r : R) => And (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) r) (Eq.{succ u2} M x (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r y))))
+but is expected to have type
+ forall {R : Type.{u2}} [_inst_1 : LinearOrderedField.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] {x : M} {y : M}, (SameRay.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 x y) -> (Ne.{succ u1} M x (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2)))))))) -> (Ne.{succ u1} M y (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2)))))))) -> (Exists.{succ u2} R (fun (r : R) => And (LT.lt.{u2} R (Preorder.toLT.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R (LinearOrderedField.toLinearOrderedCommRing.{u2} R _inst_1)))))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))))) r) (Eq.{succ u1} M x (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))) r y))))
+Case conversion may be inaccurate. Consider using '#align same_ray.exists_pos_right SameRay.exists_pos_rightₓ'. -/
theorem exists_pos_right (h : SameRay R x y) (hx : x ≠ 0) (hy : y ≠ 0) :
∃ r : R, 0 < r ∧ x = r • y :=
(h.symm.exists_pos_left hy hx).imp fun _ => And.imp_right Eq.symm
#align same_ray.exists_pos_right SameRay.exists_pos_right
+/- warning: same_ray.exists_nonneg_left -> SameRay.exists_nonneg_left is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x y) -> (Ne.{succ u2} M x (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (Exists.{succ u1} R (fun (r : R) => And (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) r) (Eq.{succ u2} M (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r x) y)))
+but is expected to have type
+ forall {R : Type.{u2}} [_inst_1 : LinearOrderedField.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] {x : M} {y : M}, (SameRay.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 x y) -> (Ne.{succ u1} M x (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2)))))))) -> (Exists.{succ u2} R (fun (r : R) => And (LE.le.{u2} R (Preorder.toLE.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R (LinearOrderedField.toLinearOrderedCommRing.{u2} R _inst_1)))))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))))) r) (Eq.{succ u1} M (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))) r x) y)))
+Case conversion may be inaccurate. Consider using '#align same_ray.exists_nonneg_left SameRay.exists_nonneg_leftₓ'. -/
/-- If a vector `v₂` is on the same ray as a nonzero vector `v₁`, then it is equal to `c • v₁` for
some nonnegative `c`. -/
theorem exists_nonneg_left (h : SameRay R x y) (hx : x ≠ 0) : ∃ r : R, 0 ≤ r ∧ r • x = y :=
@@ -676,12 +1105,24 @@ theorem exists_nonneg_left (h : SameRay R x y) (hx : x ≠ 0) : ∃ r : R, 0 ≤
· exact (h.exists_pos_left hx hy).imp fun _ => And.imp_left le_of_lt
#align same_ray.exists_nonneg_left SameRay.exists_nonneg_left
+/- warning: same_ray.exists_nonneg_right -> SameRay.exists_nonneg_right is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x y) -> (Ne.{succ u2} M y (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (Exists.{succ u1} R (fun (r : R) => And (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) r) (Eq.{succ u2} M x (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r y))))
+but is expected to have type
+ forall {R : Type.{u2}} [_inst_1 : LinearOrderedField.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] {x : M} {y : M}, (SameRay.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 x y) -> (Ne.{succ u1} M y (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2)))))))) -> (Exists.{succ u2} R (fun (r : R) => And (LE.le.{u2} R (Preorder.toLE.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R (LinearOrderedField.toLinearOrderedCommRing.{u2} R _inst_1)))))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))))) r) (Eq.{succ u1} M x (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))) r y))))
+Case conversion may be inaccurate. Consider using '#align same_ray.exists_nonneg_right SameRay.exists_nonneg_rightₓ'. -/
/-- If a vector `v₁` is on the same ray as a nonzero vector `v₂`, then it is equal to `c • v₂` for
some nonnegative `c`. -/
theorem exists_nonneg_right (h : SameRay R x y) (hy : y ≠ 0) : ∃ r : R, 0 ≤ r ∧ x = r • y :=
(h.symm.exists_nonneg_left hy).imp fun _ => And.imp_right Eq.symm
#align same_ray.exists_nonneg_right SameRay.exists_nonneg_right
+/- warning: same_ray.exists_eq_smul_add -> SameRay.exists_eq_smul_add is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {v₁ : M} {v₂ : M}, (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 v₁ v₂) -> (Exists.{succ u1} R (fun (a : R) => Exists.{succ u1} R (fun (b : R) => And (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) a) (And (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) b) (And (Eq.{succ u1} R (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toHasAdd.{u1} R (Ring.toDistrib.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))) a b) (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (NonAssocRing.toAddGroupWithOne.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) (And (Eq.{succ u2} M v₁ (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) a (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toHasAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))))) v₁ v₂))) (Eq.{succ u2} M v₂ (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) b (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toHasAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))))) v₁ v₂)))))))))
+but is expected to have type
+ forall {R : Type.{u2}} [_inst_1 : LinearOrderedField.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] {v₁ : M} {v₂ : M}, (SameRay.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 v₁ v₂) -> (Exists.{succ u2} R (fun (a : R) => Exists.{succ u2} R (fun (b : R) => And (LE.le.{u2} R (Preorder.toLE.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R (LinearOrderedField.toLinearOrderedCommRing.{u2} R _inst_1)))))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))))) a) (And (LE.le.{u2} R (Preorder.toLE.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R (LinearOrderedField.toLinearOrderedCommRing.{u2} R _inst_1)))))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))))) b) (And (Eq.{succ u2} R (HAdd.hAdd.{u2, u2, u2} R R R (instHAdd.{u2} R (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (DivisionRing.toRing.{u2} R (Field.toDivisionRing.{u2} R (LinearOrderedField.toField.{u2} R _inst_1))))))))) a b) (OfNat.ofNat.{u2} R 1 (One.toOfNat1.{u2} R (NonAssocRing.toOne.{u2} R (Ring.toNonAssocRing.{u2} R (DivisionRing.toRing.{u2} R (Field.toDivisionRing.{u2} R (LinearOrderedField.toField.{u2} R _inst_1)))))))) (And (Eq.{succ u1} M v₁ (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))) a (HAdd.hAdd.{u1, u1, u1} M M M (instHAdd.{u1} M (AddZeroClass.toAdd.{u1} M (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_2)))))) v₁ v₂))) (Eq.{succ u1} M v₂ (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))) b (HAdd.hAdd.{u1, u1, u1} M M M (instHAdd.{u1} M (AddZeroClass.toAdd.{u1} M (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_2)))))) v₁ v₂)))))))))
+Case conversion may be inaccurate. Consider using '#align same_ray.exists_eq_smul_add SameRay.exists_eq_smul_addₓ'. -/
/-- If vectors `v₁` and `v₂` are on the same ray, then for some nonnegative `a b`, `a + b = 1`, we
have `v₁ = a • (v₁ + v₂)` and `v₂ = b • (v₁ + v₂)`. -/
theorem exists_eq_smul_add (h : SameRay R v₁ v₂) :
@@ -700,6 +1141,12 @@ theorem exists_eq_smul_add (h : SameRay R v₁ v₂) :
· rw [div_eq_inv_mul, mul_smul, smul_add, H, ← add_smul, add_comm r₂, inv_smul_smul₀ h₁₂.ne']
#align same_ray.exists_eq_smul_add SameRay.exists_eq_smul_add
+/- warning: same_ray.exists_eq_smul -> SameRay.exists_eq_smul is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {v₁ : M} {v₂ : M}, (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 v₁ v₂) -> (Exists.{succ u2} M (fun (u : M) => Exists.{succ u1} R (fun (a : R) => Exists.{succ u1} R (fun (b : R) => And (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) a) (And (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) b) (And (Eq.{succ u1} R (HAdd.hAdd.{u1, u1, u1} R R R (instHAdd.{u1} R (Distrib.toHasAdd.{u1} R (Ring.toDistrib.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))) a b) (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (NonAssocRing.toAddGroupWithOne.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) (And (Eq.{succ u2} M v₁ (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) a u)) (Eq.{succ u2} M v₂ (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) b u)))))))))
+but is expected to have type
+ forall {R : Type.{u2}} [_inst_1 : LinearOrderedField.{u2} R] {M : Type.{u1}} [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : Module.{u2, u1} R M (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] {v₁ : M} {v₂ : M}, (SameRay.{u2, u1} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3 v₁ v₂) -> (Exists.{succ u1} M (fun (u : M) => Exists.{succ u2} R (fun (a : R) => Exists.{succ u2} R (fun (b : R) => And (LE.le.{u2} R (Preorder.toLE.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R (LinearOrderedField.toLinearOrderedCommRing.{u2} R _inst_1)))))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))))) a) (And (LE.le.{u2} R (Preorder.toLE.{u2} R (PartialOrder.toPreorder.{u2} R (StrictOrderedRing.toPartialOrder.{u2} R (LinearOrderedRing.toStrictOrderedRing.{u2} R (LinearOrderedCommRing.toLinearOrderedRing.{u2} R (LinearOrderedField.toLinearOrderedCommRing.{u2} R _inst_1)))))) (OfNat.ofNat.{u2} R 0 (Zero.toOfNat0.{u2} R (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))))) b) (And (Eq.{succ u2} R (HAdd.hAdd.{u2, u2, u2} R R R (instHAdd.{u2} R (Distrib.toAdd.{u2} R (NonUnitalNonAssocSemiring.toDistrib.{u2} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u2} R (NonAssocRing.toNonUnitalNonAssocRing.{u2} R (Ring.toNonAssocRing.{u2} R (DivisionRing.toRing.{u2} R (Field.toDivisionRing.{u2} R (LinearOrderedField.toField.{u2} R _inst_1))))))))) a b) (OfNat.ofNat.{u2} R 1 (One.toOfNat1.{u2} R (NonAssocRing.toOne.{u2} R (Ring.toNonAssocRing.{u2} R (DivisionRing.toRing.{u2} R (Field.toDivisionRing.{u2} R (LinearOrderedField.toField.{u2} R _inst_1)))))))) (And (Eq.{succ u1} M v₁ (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))) a u)) (Eq.{succ u1} M v₂ (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommGroupWithZero.toCommMonoidWithZero.{u2} R (Semifield.toCommGroupWithZero.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1))))) (NegZeroClass.toZero.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) (Module.toMulActionWithZero.{u2, u1} R M (DivisionSemiring.toSemiring.{u2} R (Semifield.toDivisionSemiring.{u2} R (LinearOrderedSemifield.toSemifield.{u2} R (LinearOrderedField.toLinearOrderedSemifield.{u2} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_3))))) b u)))))))))
+Case conversion may be inaccurate. Consider using '#align same_ray.exists_eq_smul SameRay.exists_eq_smulₓ'. -/
/-- If vectors `v₁` and `v₂` are on the same ray, then they are nonnegative multiples of the same
vector. Actually, this vector can be assumed to be `v₁ + v₂`, see `same_ray.exists_eq_smul_add`. -/
theorem exists_eq_smul (h : SameRay R v₁ v₂) :
@@ -715,14 +1162,26 @@ variable {R : Type _} [LinearOrderedField R]
variable {M : Type _} [AddCommGroup M] [Module R M] {x y : M}
+/- warning: exists_pos_left_iff_same_ray -> exists_pos_left_iff_sameRay is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, (Ne.{succ u2} M x (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (Ne.{succ u2} M y (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (Iff (Exists.{succ u1} R (fun (r : R) => And (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) r) (Eq.{succ u2} M (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r x) y))) (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x y))
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (DivisionSemiring.toSemiring.{u1} R (Semifield.toDivisionSemiring.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, (Ne.{succ u2} M x (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2)))))))) -> (Ne.{succ u2} M y (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2)))))))) -> (Iff (Exists.{succ u1} R (fun (r : R) => And (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (StrictOrderedRing.toPartialOrder.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)))))) (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CommGroupWithZero.toCommMonoidWithZero.{u1} R (Semifield.toCommGroupWithZero.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))))))) r) (Eq.{succ u2} M (HSMul.hSMul.{u1, u2, u2} R M M (instHSMul.{u1, u2} R M (SMulZeroClass.toSMul.{u1, u2} R M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CommGroupWithZero.toCommMonoidWithZero.{u1} R (Semifield.toCommGroupWithZero.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (DivisionSemiring.toSemiring.{u1} R (Semifield.toDivisionSemiring.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} R M (DivisionSemiring.toSemiring.{u1} R (Semifield.toDivisionSemiring.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) r x) y))) (SameRay.{u1, u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x y))
+Case conversion may be inaccurate. Consider using '#align exists_pos_left_iff_same_ray exists_pos_left_iff_sameRayₓ'. -/
theorem exists_pos_left_iff_sameRay (hx : x ≠ 0) (hy : y ≠ 0) :
(∃ r : R, 0 < r ∧ r • x = y) ↔ SameRay R x y :=
by
refine' ⟨fun h => _, fun h => h.exists_pos_left hx hy⟩
rcases h with ⟨r, hr, rfl⟩
- exact sameRay_pos_smul_right x hr
+ exact SameRay.sameRay_pos_smul_right x hr
#align exists_pos_left_iff_same_ray exists_pos_left_iff_sameRay
+/- warning: exists_pos_left_iff_same_ray_and_ne_zero -> exists_pos_left_iff_sameRay_and_ne_zero is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, (Ne.{succ u2} M x (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (Iff (Exists.{succ u1} R (fun (r : R) => And (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) r) (Eq.{succ u2} M (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r x) y))) (And (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x y) (Ne.{succ u2} M y (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))))))))))
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (DivisionSemiring.toSemiring.{u1} R (Semifield.toDivisionSemiring.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, (Ne.{succ u2} M x (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2)))))))) -> (Iff (Exists.{succ u1} R (fun (r : R) => And (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (StrictOrderedRing.toPartialOrder.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)))))) (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CommGroupWithZero.toCommMonoidWithZero.{u1} R (Semifield.toCommGroupWithZero.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))))))) r) (Eq.{succ u2} M (HSMul.hSMul.{u1, u2, u2} R M M (instHSMul.{u1, u2} R M (SMulZeroClass.toSMul.{u1, u2} R M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CommGroupWithZero.toCommMonoidWithZero.{u1} R (Semifield.toCommGroupWithZero.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (DivisionSemiring.toSemiring.{u1} R (Semifield.toDivisionSemiring.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} R M (DivisionSemiring.toSemiring.{u1} R (Semifield.toDivisionSemiring.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) r x) y))) (And (SameRay.{u1, u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x y) (Ne.{succ u2} M y (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))))))))
+Case conversion may be inaccurate. Consider using '#align exists_pos_left_iff_same_ray_and_ne_zero exists_pos_left_iff_sameRay_and_ne_zeroₓ'. -/
theorem exists_pos_left_iff_sameRay_and_ne_zero (hx : x ≠ 0) :
(∃ r : R, 0 < r ∧ r • x = y) ↔ SameRay R x y ∧ y ≠ 0 :=
by
@@ -733,27 +1192,51 @@ theorem exists_pos_left_iff_sameRay_and_ne_zero (hx : x ≠ 0) :
exact (exists_pos_left_iff_sameRay hx hy).2 hxy
#align exists_pos_left_iff_same_ray_and_ne_zero exists_pos_left_iff_sameRay_and_ne_zero
+/- warning: exists_nonneg_left_iff_same_ray -> exists_nonneg_left_iff_sameRay is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, (Ne.{succ u2} M x (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (Iff (Exists.{succ u1} R (fun (r : R) => And (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) r) (Eq.{succ u2} M (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r x) y))) (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x y))
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (DivisionSemiring.toSemiring.{u1} R (Semifield.toDivisionSemiring.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, (Ne.{succ u2} M x (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2)))))))) -> (Iff (Exists.{succ u1} R (fun (r : R) => And (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (StrictOrderedRing.toPartialOrder.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)))))) (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CommGroupWithZero.toCommMonoidWithZero.{u1} R (Semifield.toCommGroupWithZero.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))))))) r) (Eq.{succ u2} M (HSMul.hSMul.{u1, u2, u2} R M M (instHSMul.{u1, u2} R M (SMulZeroClass.toSMul.{u1, u2} R M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CommGroupWithZero.toCommMonoidWithZero.{u1} R (Semifield.toCommGroupWithZero.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (DivisionSemiring.toSemiring.{u1} R (Semifield.toDivisionSemiring.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} R M (DivisionSemiring.toSemiring.{u1} R (Semifield.toDivisionSemiring.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) r x) y))) (SameRay.{u1, u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x y))
+Case conversion may be inaccurate. Consider using '#align exists_nonneg_left_iff_same_ray exists_nonneg_left_iff_sameRayₓ'. -/
theorem exists_nonneg_left_iff_sameRay (hx : x ≠ 0) :
(∃ r : R, 0 ≤ r ∧ r • x = y) ↔ SameRay R x y :=
by
refine' ⟨fun h => _, fun h => h.exists_nonneg_left hx⟩
rcases h with ⟨r, hr, rfl⟩
- exact sameRay_nonneg_smul_right x hr
+ exact SameRay.sameRay_nonneg_smul_right x hr
#align exists_nonneg_left_iff_same_ray exists_nonneg_left_iff_sameRay
+/- warning: exists_pos_right_iff_same_ray -> exists_pos_right_iff_sameRay is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, (Ne.{succ u2} M x (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (Ne.{succ u2} M y (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (Iff (Exists.{succ u1} R (fun (r : R) => And (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) r) (Eq.{succ u2} M x (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r y)))) (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x y))
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (DivisionSemiring.toSemiring.{u1} R (Semifield.toDivisionSemiring.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, (Ne.{succ u2} M x (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2)))))))) -> (Ne.{succ u2} M y (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2)))))))) -> (Iff (Exists.{succ u1} R (fun (r : R) => And (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (StrictOrderedRing.toPartialOrder.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)))))) (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CommGroupWithZero.toCommMonoidWithZero.{u1} R (Semifield.toCommGroupWithZero.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))))))) r) (Eq.{succ u2} M x (HSMul.hSMul.{u1, u2, u2} R M M (instHSMul.{u1, u2} R M (SMulZeroClass.toSMul.{u1, u2} R M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CommGroupWithZero.toCommMonoidWithZero.{u1} R (Semifield.toCommGroupWithZero.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (DivisionSemiring.toSemiring.{u1} R (Semifield.toDivisionSemiring.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} R M (DivisionSemiring.toSemiring.{u1} R (Semifield.toDivisionSemiring.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) r y)))) (SameRay.{u1, u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x y))
+Case conversion may be inaccurate. Consider using '#align exists_pos_right_iff_same_ray exists_pos_right_iff_sameRayₓ'. -/
theorem exists_pos_right_iff_sameRay (hx : x ≠ 0) (hy : y ≠ 0) :
(∃ r : R, 0 < r ∧ x = r • y) ↔ SameRay R x y := by
- simpa only [sameRay_comm, eq_comm] using exists_pos_left_iff_sameRay hy hx
+ simpa only [SameRay.sameRay_comm, eq_comm] using exists_pos_left_iff_sameRay hy hx
#align exists_pos_right_iff_same_ray exists_pos_right_iff_sameRay
+/- warning: exists_pos_right_iff_same_ray_and_ne_zero -> exists_pos_right_iff_sameRay_and_ne_zero is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, (Ne.{succ u2} M y (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (Iff (Exists.{succ u1} R (fun (r : R) => And (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) r) (Eq.{succ u2} M x (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r y)))) (And (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x y) (Ne.{succ u2} M x (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))))))))))
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (DivisionSemiring.toSemiring.{u1} R (Semifield.toDivisionSemiring.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, (Ne.{succ u2} M y (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2)))))))) -> (Iff (Exists.{succ u1} R (fun (r : R) => And (LT.lt.{u1} R (Preorder.toLT.{u1} R (PartialOrder.toPreorder.{u1} R (StrictOrderedRing.toPartialOrder.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)))))) (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CommGroupWithZero.toCommMonoidWithZero.{u1} R (Semifield.toCommGroupWithZero.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))))))) r) (Eq.{succ u2} M x (HSMul.hSMul.{u1, u2, u2} R M M (instHSMul.{u1, u2} R M (SMulZeroClass.toSMul.{u1, u2} R M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CommGroupWithZero.toCommMonoidWithZero.{u1} R (Semifield.toCommGroupWithZero.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (DivisionSemiring.toSemiring.{u1} R (Semifield.toDivisionSemiring.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} R M (DivisionSemiring.toSemiring.{u1} R (Semifield.toDivisionSemiring.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) r y)))) (And (SameRay.{u1, u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x y) (Ne.{succ u2} M x (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))))))))
+Case conversion may be inaccurate. Consider using '#align exists_pos_right_iff_same_ray_and_ne_zero exists_pos_right_iff_sameRay_and_ne_zeroₓ'. -/
theorem exists_pos_right_iff_sameRay_and_ne_zero (hy : y ≠ 0) :
(∃ r : R, 0 < r ∧ x = r • y) ↔ SameRay R x y ∧ x ≠ 0 := by
- simpa only [sameRay_comm, eq_comm] using exists_pos_left_iff_sameRay_and_ne_zero hy
+ simpa only [SameRay.sameRay_comm, eq_comm] using exists_pos_left_iff_sameRay_and_ne_zero hy
#align exists_pos_right_iff_same_ray_and_ne_zero exists_pos_right_iff_sameRay_and_ne_zero
+/- warning: exists_nonneg_right_iff_same_ray -> exists_nonneg_right_iff_sameRay is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, (Ne.{succ u2} M y (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))))))))) -> (Iff (Exists.{succ u1} R (fun (r : R) => And (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))))))) (OfNat.ofNat.{u1} R 0 (OfNat.mk.{u1} R 0 (Zero.zero.{u1} R (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))))))) r) (Eq.{succ u2} M x (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R M (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) r y)))) (SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x y))
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : LinearOrderedField.{u1} R] {M : Type.{u2}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (DivisionSemiring.toSemiring.{u1} R (Semifield.toDivisionSemiring.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] {x : M} {y : M}, (Ne.{succ u2} M y (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2)))))))) -> (Iff (Exists.{succ u1} R (fun (r : R) => And (LE.le.{u1} R (Preorder.toLE.{u1} R (PartialOrder.toPreorder.{u1} R (StrictOrderedRing.toPartialOrder.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)))))) (OfNat.ofNat.{u1} R 0 (Zero.toOfNat0.{u1} R (CommMonoidWithZero.toZero.{u1} R (CommGroupWithZero.toCommMonoidWithZero.{u1} R (Semifield.toCommGroupWithZero.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))))))) r) (Eq.{succ u2} M x (HSMul.hSMul.{u1, u2, u2} R M M (instHSMul.{u1, u2} R M (SMulZeroClass.toSMul.{u1, u2} R M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (CommMonoidWithZero.toZero.{u1} R (CommGroupWithZero.toCommMonoidWithZero.{u1} R (Semifield.toCommGroupWithZero.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (DivisionSemiring.toSemiring.{u1} R (Semifield.toDivisionSemiring.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))))) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) (Module.toMulActionWithZero.{u1, u2} R M (DivisionSemiring.toSemiring.{u1} R (Semifield.toDivisionSemiring.{u1} R (LinearOrderedSemifield.toSemifield.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) r y)))) (SameRay.{u1, u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} R (LinearOrderedField.toLinearOrderedSemifield.{u1} R _inst_1))) M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 x y))
+Case conversion may be inaccurate. Consider using '#align exists_nonneg_right_iff_same_ray exists_nonneg_right_iff_sameRayₓ'. -/
theorem exists_nonneg_right_iff_sameRay (hy : y ≠ 0) :
(∃ r : R, 0 ≤ r ∧ x = r • y) ↔ SameRay R x y := by
- simpa only [sameRay_comm, eq_comm] using exists_nonneg_left_iff_sameRay hy
+ simpa only [SameRay.sameRay_comm, eq_comm] using exists_nonneg_left_iff_sameRay hy
#align exists_nonneg_right_iff_same_ray exists_nonneg_right_iff_sameRay
end LinearOrderedField
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
@@ -210,7 +210,7 @@ theorem add_right (hy : SameRay R x y) (hz : SameRay R x z) : SameRay R x (y + z
end SameRay
--- Porting note: removed has_nonempty_instance nolint, no such linter
+-- Porting note(#5171): removed has_nonempty_instance nolint, no such linter
set_option linter.unusedVariables false in
/-- Nonzero vectors, as used to define rays. This type depends on an unused argument `R` so that
`RayVector.Setoid` can be an instance. -/
@@ -238,7 +238,7 @@ instance RayVector.Setoid : Setoid (RayVector R M)
exact hxy.trans hyz fun hy => (y.2 hy).elim⟩
/-- A ray (equivalence class of nonzero vectors with common positive multiples) in a module. -/
--- Porting note: removed has_nonempty_instance nolint, no such linter
+-- Porting note(#5171): removed has_nonempty_instance nolint, no such linter
def Module.Ray :=
Quotient (RayVector.Setoid R M)
#align module.ray Module.Ray
@@ -476,7 +476,7 @@ instance : InvolutiveNeg (Module.Ray R M)
/-- A ray does not equal its own negation. -/
theorem ne_neg_self [NoZeroSMulDivisors R M] (x : Module.Ray R M) : x ≠ -x := by
induction' x using Module.Ray.ind with x hx
- rw [neg_rayOfNeZero, Ne.def, ray_eq_iff]
+ rw [neg_rayOfNeZero, Ne, ray_eq_iff]
exact mt eq_zero_of_sameRay_self_neg hx
#align module.ray.ne_neg_self Module.Ray.ne_neg_self
Empty lines were removed by executing the following Python script twice
import os
import re
# Loop through each file in the repository
for dir_path, dirs, files in os.walk('.'):
for filename in files:
if filename.endswith('.lean'):
file_path = os.path.join(dir_path, filename)
# Open the file and read its contents
with open(file_path, 'r') as file:
content = file.read()
# Use a regular expression to replace sequences of "variable" lines separated by empty lines
# with sequences without empty lines
modified_content = re.sub(r'(variable.*\n)\n(variable(?! .* in))', r'\1\2', content)
# Write the modified content back to the file
with open(file_path, 'w') as file:
file.write(modified_content)
@@ -32,11 +32,8 @@ open BigOperators
section StrictOrderedCommSemiring
variable (R : Type*) [StrictOrderedCommSemiring R]
-
variable {M : Type*} [AddCommMonoid M] [Module R M]
-
variable {N : Type*} [AddCommMonoid N] [Module R N]
-
variable (ι : Type*) [DecidableEq ι]
/-- Two vectors are in the same ray if either one of them is zero or some positive multiples of them
@@ -394,7 +391,6 @@ end StrictOrderedCommSemiring
section StrictOrderedCommRing
variable {R : Type*} [StrictOrderedCommRing R]
-
variable {M N : Type*} [AddCommGroup M] [AddCommGroup N] [Module R M] [Module R N] {x y : M}
/-- `SameRay.neg` as an `iff`. -/
@@ -509,7 +505,6 @@ end StrictOrderedCommRing
section LinearOrderedCommRing
variable {R : Type*} [LinearOrderedCommRing R]
-
variable {M : Type*} [AddCommGroup M] [Module R M]
-- Porting note: Needed to add coercion ↥ below
@@ -652,7 +647,6 @@ end LinearOrderedCommRing
namespace SameRay
variable {R : Type*} [LinearOrderedField R]
-
variable {M : Type*} [AddCommGroup M] [Module R M] {x y v₁ v₂ : M}
theorem exists_pos_left (h : SameRay R x y) (hx : x ≠ 0) (hy : y ≠ 0) :
@@ -709,7 +703,6 @@ end SameRay
section LinearOrderedField
variable {R : Type*} [LinearOrderedField R]
-
variable {M : Type*} [AddCommGroup M] [Module R M] {x y : M}
theorem exists_pos_left_iff_sameRay (hx : x ≠ 0) (hy : y ≠ 0) :
Order
ed instances for subobjects into separate files (#10900)
Moving these to separate files should make typeclass synthesis less expensive. Additionally two of them are quite long and this shrinks them slightly.
This handles:
Submonoid
Subgroup
Subsemiring
Subring
Subfield
Submodule
Subalgebra
This also moves Units.posSubgroup
into its own file.
The copyright headers are from:
Co-authored-by: Eric Wieser <wieser.eric@gmail.com>
@@ -6,6 +6,7 @@ Authors: Joseph Myers
import Mathlib.Algebra.Order.Module.Algebra
import Mathlib.GroupTheory.Subgroup.Actions
import Mathlib.LinearAlgebra.LinearIndependent
+import Mathlib.RingTheory.Subring.Units
#align_import linear_algebra.ray from "leanprover-community/mathlib"@"0f6670b8af2dff699de1c0b4b49039b31bc13c46"
The FunLike hierarchy is very big and gets scanned through each time we need a coercion (via the CoeFun
instance). It looks like unbundled inheritance suits Lean 4 better here. The only class that still extends FunLike
is EquivLike
, since that has a custom coe_injective'
field that is easier to implement. All other classes should take FunLike
or EquivLike
as a parameter.
Previously, morphism classes would be Type
-valued and extend FunLike
:
/-- `MyHomClass F A B` states that `F` is a type of `MyClass.op`-preserving morphisms.
You should extend this class when you extend `MyHom`. -/
class MyHomClass (F : Type*) (A B : outParam <| Type*) [MyClass A] [MyClass B]
extends FunLike F A B :=
(map_op : ∀ (f : F) (x y : A), f (MyClass.op x y) = MyClass.op (f x) (f y))
After this PR, they should be Prop
-valued and take FunLike
as a parameter:
/-- `MyHomClass F A B` states that `F` is a type of `MyClass.op`-preserving morphisms.
You should extend this class when you extend `MyHom`. -/
class MyHomClass (F : Type*) (A B : outParam <| Type*) [MyClass A] [MyClass B]
[FunLike F A B] : Prop :=
(map_op : ∀ (f : F) (x y : A), f (MyClass.op x y) = MyClass.op (f x) (f y))
(Note that A B
stay marked as outParam
even though they are not purely required to be so due to the FunLike
parameter already filling them in. This is required to see through type synonyms, which is important in the category theory library. Also, I think keeping them as outParam
is slightly faster.)
Similarly, MyEquivClass
should take EquivLike
as a parameter.
As a result, every mention of [MyHomClass F A B]
should become [FunLike F A B] [MyHomClass F A B]
.
While overall this gives some great speedups, there are some cases that are noticeably slower. In particular, a failing application of a lemma such as map_mul
is more expensive. This is due to suboptimal processing of arguments. For example:
variable [FunLike F M N] [Mul M] [Mul N] (f : F) (x : M) (y : M)
theorem map_mul [MulHomClass F M N] : f (x * y) = f x * f y
example [AddHomClass F A B] : f (x * y) = f x * f y := map_mul f _ _
Before this PR, applying map_mul f
gives the goals [Mul ?M] [Mul ?N] [MulHomClass F ?M ?N]
. Since M
and N
are out_param
s, [MulHomClass F ?M ?N]
is synthesized first, supplies values for ?M
and ?N
and then the Mul M
and Mul N
instances can be found.
After this PR, the goals become [FunLike F ?M ?N] [Mul ?M] [Mul ?N] [MulHomClass F ?M ?N]
. Now [FunLike F ?M ?N]
is synthesized first, supplies values for ?M
and ?N
and then the Mul M
and Mul N
instances can be found, before trying MulHomClass F M N
which fails. Since the Mul
hierarchy is very big, this can be slow to fail, especially when there is no such Mul
instance.
A long-term but harder to achieve solution would be to specify the order in which instance goals get solved. For example, we'd like to change the arguments to map_mul
to look like [FunLike F M N] [Mul M] [Mul N] [highPriority <| MulHomClass F M N]
because MulHomClass
fails or succeeds much faster than the others.
As a consequence, the simpNF
linter is much slower since by design it tries and fails to apply many map_
lemmas. The same issue occurs a few times in existing calls to simp [map_mul]
, where map_mul
is tried "too soon" and fails. Thanks to the speedup of leanprover/lean4#2478 the impact is very limited, only in files that already were close to the timeout.
simp
not firing sometimesThis affects map_smulₛₗ
and related definitions. For simp
lemmas Lean apparently uses a slightly different mechanism to find instances, so that rw
can find every argument to map_smulₛₗ
successfully but simp
can't: leanprover/lean4#3701.
Especially in the category theory library, we might sometimes have a type A
which is also accessible as a synonym (Bundled A hA).1
. Instance synthesis doesn't always work if we have f : A →* B
but x * y : (Bundled A hA).1
or vice versa. This seems to be mostly fixed by keeping A B
as outParam
s in MulHomClass F A B
. (Presumably because Lean will do a definitional check A =?= (Bundled A hA).1
instead of using the syntax in the discrimination tree.)
The timeouts can be worked around for now by specifying which map_mul
we mean, either as map_mul f
for some explicit f
, or as e.g. MonoidHomClass.map_mul
.
map_smulₛₗ
not firing as simp
lemma can be worked around by going back to the pre-FunLike situation and making LinearMap.map_smulₛₗ
a simp
lemma instead of the generic map_smulₛₗ
. Writing simp [map_smulₛₗ _]
also works.
Co-authored-by: Matthew Ballard <matt@mrb.email> Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Scott Morrison <scott@tqft.net> Co-authored-by: Anne Baanen <Vierkantor@users.noreply.github.com>
@@ -171,8 +171,10 @@ theorem map (f : M →ₗ[R] N) (h : SameRay R x y) : SameRay R (f x) (f y) :=
/-- The images of two vectors under an injective linear map are on the same ray if and only if the
original vectors are on the same ray. -/
-theorem _root_.Function.Injective.sameRay_map_iff {F : Type*} [LinearMapClass F R M N] {f : F}
- (hf : Function.Injective f) : SameRay R (f x) (f y) ↔ SameRay R x y := by
+theorem _root_.Function.Injective.sameRay_map_iff
+ {F : Type*} [FunLike F M N] [LinearMapClass F R M N]
+ {f : F} (hf : Function.Injective f) :
+ SameRay R (f x) (f y) ↔ SameRay R x y := by
simp only [SameRay, map_zero, ← hf.eq_iff, map_smul]
#align function.injective.same_ray_map_iff Function.Injective.sameRay_map_iff
@@ -3,6 +3,7 @@ Copyright (c) 2021 Joseph Myers. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Joseph Myers
-/
+import Mathlib.Algebra.Order.Module.Algebra
import Mathlib.GroupTheory.Subgroup.Actions
import Mathlib.LinearAlgebra.LinearIndependent
@@ -114,47 +115,50 @@ theorem trans (hxy : SameRay R x y) (hyz : SameRay R y z) (hy : y = 0 → x = 0
rw [mul_smul, mul_smul, h₁, ← h₂, smul_comm]
#align same_ray.trans SameRay.trans
+variable {S : Type*} [OrderedCommSemiring S] [Algebra S R] [Module S M] [SMulPosMono S R]
+ [IsScalarTower S R M] {a : S}
+
/-- A vector is in the same ray as a nonnegative multiple of itself. -/
-theorem sameRay_nonneg_smul_right (v : M) {r : R} (h : 0 ≤ r) : SameRay R v (r • v) :=
- Or.inr <|
- h.eq_or_lt.imp (fun (h : 0 = r) => h ▸ zero_smul R v) fun h =>
- ⟨r, 1, h, by
- nontriviality R
- exact zero_lt_one, (one_smul _ _).symm⟩
+lemma sameRay_nonneg_smul_right (v : M) (h : 0 ≤ a) : SameRay R v (a • v) := by
+ obtain h | h := (algebraMap_nonneg R h).eq_or_gt
+ · rw [← algebraMap_smul R a v, h, zero_smul]
+ exact zero_right _
+ · refine Or.inr $ Or.inr ⟨algebraMap S R a, 1, h, by nontriviality R; exact zero_lt_one, ?_⟩
+ rw [algebraMap_smul, one_smul]
#align same_ray_nonneg_smul_right SameRay.sameRay_nonneg_smul_right
-/-- A vector is in the same ray as a positive multiple of itself. -/
-theorem sameRay_pos_smul_right (v : M) {r : R} (h : 0 < r) : SameRay R v (r • v) :=
- sameRay_nonneg_smul_right v h.le
-#align same_ray_pos_smul_right SameRay.sameRay_pos_smul_right
-
-/-- A vector is in the same ray as a nonnegative multiple of one it is in the same ray as. -/
-theorem nonneg_smul_right {r : R} (h : SameRay R x y) (hr : 0 ≤ r) : SameRay R x (r • y) :=
- h.trans (sameRay_nonneg_smul_right y hr) fun hy => Or.inr <| by rw [hy, smul_zero]
-#align same_ray.nonneg_smul_right SameRay.nonneg_smul_right
-
-/-- A vector is in the same ray as a positive multiple of one it is in the same ray as. -/
-theorem pos_smul_right {r : R} (h : SameRay R x y) (hr : 0 < r) : SameRay R x (r • y) :=
- h.nonneg_smul_right hr.le
-#align same_ray.pos_smul_right SameRay.pos_smul_right
-
/-- A nonnegative multiple of a vector is in the same ray as that vector. -/
-theorem sameRay_nonneg_smul_left (v : M) {r : R} (h : 0 ≤ r) : SameRay R (r • v) v :=
- (sameRay_nonneg_smul_right v h).symm
+lemma sameRay_nonneg_smul_left (v : M) (ha : 0 ≤ a) : SameRay R (a • v) v :=
+ (sameRay_nonneg_smul_right v ha).symm
#align same_ray_nonneg_smul_left SameRay.sameRay_nonneg_smul_left
+/-- A vector is in the same ray as a positive multiple of itself. -/
+lemma sameRay_pos_smul_right (v : M) (ha : 0 < a) : SameRay R v (a • v) :=
+ sameRay_nonneg_smul_right v ha.le
+#align same_ray_pos_smul_right SameRay.sameRay_pos_smul_right
+
/-- A positive multiple of a vector is in the same ray as that vector. -/
-theorem sameRay_pos_smul_left (v : M) {r : R} (h : 0 < r) : SameRay R (r • v) v :=
- sameRay_nonneg_smul_left v h.le
+lemma sameRay_pos_smul_left (v : M) (ha : 0 < a) : SameRay R (a • v) v :=
+ sameRay_nonneg_smul_left v ha.le
#align same_ray_pos_smul_left SameRay.sameRay_pos_smul_left
+/-- A vector is in the same ray as a nonnegative multiple of one it is in the same ray as. -/
+lemma nonneg_smul_right (h : SameRay R x y) (ha : 0 ≤ a) : SameRay R x (a • y) :=
+ h.trans (sameRay_nonneg_smul_right y ha) fun hy => Or.inr <| by rw [hy, smul_zero]
+#align same_ray.nonneg_smul_right SameRay.nonneg_smul_right
+
/-- A nonnegative multiple of a vector is in the same ray as one it is in the same ray as. -/
-theorem nonneg_smul_left {r : R} (h : SameRay R x y) (hr : 0 ≤ r) : SameRay R (r • x) y :=
- (h.symm.nonneg_smul_right hr).symm
+lemma nonneg_smul_left (h : SameRay R x y) (ha : 0 ≤ a) : SameRay R (a • x) y :=
+ (h.symm.nonneg_smul_right ha).symm
#align same_ray.nonneg_smul_left SameRay.nonneg_smul_left
+/-- A vector is in the same ray as a positive multiple of one it is in the same ray as. -/
+theorem pos_smul_right (h : SameRay R x y) (ha : 0 < a) : SameRay R x (a • y) :=
+ h.nonneg_smul_right ha.le
+#align same_ray.pos_smul_right SameRay.pos_smul_right
+
/-- A positive multiple of a vector is in the same ray as one it is in the same ray as. -/
-theorem pos_smul_left {r : R} (h : SameRay R x y) (hr : 0 < r) : SameRay R (r • x) y :=
+theorem pos_smul_left (h : SameRay R x y) (hr : 0 < a) : SameRay R (a • x) y :=
h.nonneg_smul_left hr.le
#align same_ray.pos_smul_left SameRay.pos_smul_left
(· op ·) a
by (a op ·)
(#8843)
I used the regex \(\(· (.) ·\) (.)\)
, replacing with ($2 $1 ·)
.
@@ -313,7 +313,7 @@ variable {G : Type*} [Group G] [DistribMulAction G M]
when `G = Rˣ` -/
instance {R : Type*} : MulAction G (RayVector R M)
where
- smul r := Subtype.map ((· • ·) r) fun _ => (smul_ne_zero_iff_ne _).2
+ smul r := Subtype.map (r • ·) fun _ => (smul_ne_zero_iff_ne _).2
mul_smul a b _ := Subtype.ext <| mul_smul a b _
one_smul _ := Subtype.ext <| one_smul _ _
@@ -323,7 +323,7 @@ variable [SMulCommClass R G M]
`G = Rˣ` -/
instance : MulAction G (Module.Ray R M)
where
- smul r := Quotient.map ((· • ·) r) fun _ _ h => h.smul _
+ smul r := Quotient.map (r • ·) fun _ _ h => h.smul _
mul_smul a b := Quotient.ind fun _ => congr_arg Quotient.mk' <| mul_smul a b _
one_smul := Quotient.ind fun _ => congr_arg Quotient.mk' <| one_smul _ _
The new precedences match coeNotation
in core:
syntax:1024 (name := coeNotation) "↑" term:1024 : term
They also match the precedence in Lean 3.
@@ -507,7 +507,7 @@ variable {M : Type*} [AddCommGroup M] [Module R M]
-- Porting note: Needed to add coercion ↥ below
/-- `SameRay` follows from membership of `MulAction.orbit` for the `Units.posSubgroup`. -/
-theorem sameRay_of_mem_orbit {v₁ v₂ : M} (h : v₁ ∈ MulAction.orbit (↥Units.posSubgroup R) v₂) :
+theorem sameRay_of_mem_orbit {v₁ v₂ : M} (h : v₁ ∈ MulAction.orbit ↥(Units.posSubgroup R) v₂) :
SameRay R v₁ v₂ := by
rcases h with ⟨⟨r, hr : 0 < r.1⟩, rfl : r • v₂ = v₁⟩
exact SameRay.sameRay_pos_smul_left _ hr
@@ -396,7 +396,7 @@ theorem sameRay_neg_iff : SameRay R (-x) (-y) ↔ SameRay R x y := by
simp only [SameRay, neg_eq_zero, smul_neg, neg_inj]
#align same_ray_neg_iff sameRay_neg_iff
-alias sameRay_neg_iff ↔ SameRay.of_neg SameRay.neg
+alias ⟨SameRay.of_neg, SameRay.neg⟩ := sameRay_neg_iff
#align same_ray.of_neg SameRay.of_neg
#align same_ray.neg SameRay.neg
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -29,13 +29,13 @@ open BigOperators
section StrictOrderedCommSemiring
-variable (R : Type _) [StrictOrderedCommSemiring R]
+variable (R : Type*) [StrictOrderedCommSemiring R]
-variable {M : Type _} [AddCommMonoid M] [Module R M]
+variable {M : Type*} [AddCommMonoid M] [Module R M]
-variable {N : Type _} [AddCommMonoid N] [Module R N]
+variable {N : Type*} [AddCommMonoid N] [Module R N]
-variable (ι : Type _) [DecidableEq ι]
+variable (ι : Type*) [DecidableEq ι]
/-- Two vectors are in the same ray if either one of them is zero or some positive multiples of them
are equal (in the typical case over a field, this means one of them is a nonnegative multiple of
@@ -167,7 +167,7 @@ theorem map (f : M →ₗ[R] N) (h : SameRay R x y) : SameRay R (f x) (f y) :=
/-- The images of two vectors under an injective linear map are on the same ray if and only if the
original vectors are on the same ray. -/
-theorem _root_.Function.Injective.sameRay_map_iff {F : Type _} [LinearMapClass F R M N] {f : F}
+theorem _root_.Function.Injective.sameRay_map_iff {F : Type*} [LinearMapClass F R M N] {f : F}
(hf : Function.Injective f) : SameRay R (f x) (f y) ↔ SameRay R x y := by
simp only [SameRay, map_zero, ← hf.eq_iff, map_smul]
#align function.injective.same_ray_map_iff Function.Injective.sameRay_map_iff
@@ -181,7 +181,7 @@ theorem sameRay_map_iff (e : M ≃ₗ[R] N) : SameRay R (e x) (e y) ↔ SameRay
/-- If two vectors are on the same ray then both scaled by the same action are also on the same
ray. -/
-theorem smul {S : Type _} [Monoid S] [DistribMulAction S M] [SMulCommClass R S M]
+theorem smul {S : Type*} [Monoid S] [DistribMulAction S M] [SMulCommClass R S M]
(h : SameRay R x y) (s : S) : SameRay R (s • x) (s • y) :=
h.map (s • (LinearMap.id : M →ₗ[R] M))
#align same_ray.smul SameRay.smul
@@ -211,7 +211,7 @@ set_option linter.unusedVariables false in
/-- Nonzero vectors, as used to define rays. This type depends on an unused argument `R` so that
`RayVector.Setoid` can be an instance. -/
@[nolint unusedArguments]
-def RayVector (R M : Type _) [Zero M] :=
+def RayVector (R M : Type*) [Zero M] :=
{ v : M // v ≠ 0 }
#align ray_vector RayVector
@@ -219,7 +219,7 @@ def RayVector (R M : Type _) [Zero M] :=
instance RayVector.coe [Zero M] : CoeOut (RayVector R M) M where
coe := Subtype.val
#align ray_vector.has_coe RayVector.coe
-instance {R M : Type _} [Zero M] [Nontrivial M] : Nonempty (RayVector R M) :=
+instance {R M : Type*} [Zero M] [Nontrivial M] : Nonempty (RayVector R M) :=
let ⟨x, hx⟩ := exists_ne (0 : M)
⟨⟨x, hx⟩⟩
variable (R M)
@@ -307,11 +307,11 @@ theorem Module.Ray.map_symm (e : M ≃ₗ[R] N) : (Module.Ray.map e).symm = Modu
section Action
-variable {G : Type _} [Group G] [DistribMulAction G M]
+variable {G : Type*} [Group G] [DistribMulAction G M]
/-- Any invertible action preserves the non-zeroness of ray vectors. This is primarily of interest
when `G = Rˣ` -/
-instance {R : Type _} : MulAction G (RayVector R M)
+instance {R : Type*} : MulAction G (RayVector R M)
where
smul r := Subtype.map ((· • ·) r) fun _ => (smul_ne_zero_iff_ne _).2
mul_smul a b _ := Subtype.ext <| mul_smul a b _
@@ -386,9 +386,9 @@ end StrictOrderedCommSemiring
section StrictOrderedCommRing
-variable {R : Type _} [StrictOrderedCommRing R]
+variable {R : Type*} [StrictOrderedCommRing R]
-variable {M N : Type _} [AddCommGroup M] [AddCommGroup N] [Module R M] [Module R N] {x y : M}
+variable {M N : Type*} [AddCommGroup M] [AddCommGroup N] [Module R M] [Module R N] {x y : M}
/-- `SameRay.neg` as an `iff`. -/
@[simp]
@@ -423,17 +423,17 @@ theorem eq_zero_of_sameRay_self_neg [NoZeroSMulDivisors R M] (h : SameRay R x (-
namespace RayVector
/-- Negating a nonzero vector. -/
-instance {R : Type _} : Neg (RayVector R M) :=
+instance {R : Type*} : Neg (RayVector R M) :=
⟨fun v => ⟨-v, neg_ne_zero.2 v.prop⟩⟩
/-- Negating a nonzero vector commutes with coercion to the underlying module. -/
@[simp, norm_cast]
-theorem coe_neg {R : Type _} (v : RayVector R M) : ↑(-v) = -(v : M) :=
+theorem coe_neg {R : Type*} (v : RayVector R M) : ↑(-v) = -(v : M) :=
rfl
#align ray_vector.coe_neg RayVector.coe_neg
/-- Negating a nonzero vector twice produces the original vector. -/
-instance {R : Type _} : InvolutiveNeg (RayVector R M)
+instance {R : Type*} : InvolutiveNeg (RayVector R M)
where
neg := Neg.neg
neg_neg v := by rw [Subtype.ext_iff, coe_neg, coe_neg, neg_neg]
@@ -501,9 +501,9 @@ end StrictOrderedCommRing
section LinearOrderedCommRing
-variable {R : Type _} [LinearOrderedCommRing R]
+variable {R : Type*} [LinearOrderedCommRing R]
-variable {M : Type _} [AddCommGroup M] [Module R M]
+variable {M : Type*} [AddCommGroup M] [Module R M]
-- Porting note: Needed to add coercion ↥ below
/-- `SameRay` follows from membership of `MulAction.orbit` for the `Units.posSubgroup`. -/
@@ -644,9 +644,9 @@ end LinearOrderedCommRing
namespace SameRay
-variable {R : Type _} [LinearOrderedField R]
+variable {R : Type*} [LinearOrderedField R]
-variable {M : Type _} [AddCommGroup M] [Module R M] {x y v₁ v₂ : M}
+variable {M : Type*} [AddCommGroup M] [Module R M] {x y v₁ v₂ : M}
theorem exists_pos_left (h : SameRay R x y) (hx : x ≠ 0) (hy : y ≠ 0) :
∃ r : R, 0 < r ∧ r • x = y :=
@@ -701,9 +701,9 @@ end SameRay
section LinearOrderedField
-variable {R : Type _} [LinearOrderedField R]
+variable {R : Type*} [LinearOrderedField R]
-variable {M : Type _} [AddCommGroup M] [Module R M] {x y : M}
+variable {M : Type*} [AddCommGroup M] [Module R M] {x y : M}
theorem exists_pos_left_iff_sameRay (hx : x ≠ 0) (hy : y ≠ 0) :
(∃ r : R, 0 < r ∧ r • x = y) ↔ SameRay R x y := by
@@ -2,15 +2,12 @@
Copyright (c) 2021 Joseph Myers. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Joseph Myers
-
-! This file was ported from Lean 3 source module linear_algebra.ray
-! leanprover-community/mathlib commit 0f6670b8af2dff699de1c0b4b49039b31bc13c46
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.GroupTheory.Subgroup.Actions
import Mathlib.LinearAlgebra.LinearIndependent
+#align_import linear_algebra.ray from "leanprover-community/mathlib"@"0f6670b8af2dff699de1c0b4b49039b31bc13c46"
+
/-!
# Rays in modules
@@ -696,7 +696,7 @@ theorem exists_eq_smul_add (h : SameRay R v₁ v₂) :
/-- If vectors `v₁` and `v₂` are on the same ray, then they are nonnegative multiples of the same
vector. Actually, this vector can be assumed to be `v₁ + v₂`, see `SameRay.exists_eq_smul_add`. -/
theorem exists_eq_smul (h : SameRay R v₁ v₂) :
- ∃ (u : M)(a b : R), 0 ≤ a ∧ 0 ≤ b ∧ a + b = 1 ∧ v₁ = a • u ∧ v₂ = b • u :=
+ ∃ (u : M) (a b : R), 0 ≤ a ∧ 0 ≤ b ∧ a + b = 1 ∧ v₁ = a • u ∧ v₂ = b • u :=
⟨v₁ + v₂, h.exists_eq_smul_add⟩
#align same_ray.exists_eq_smul SameRay.exists_eq_smul
@@ -218,7 +218,7 @@ def RayVector (R M : Type _) [Zero M] :=
{ v : M // v ≠ 0 }
#align ray_vector RayVector
--- Porting note: Made Coe into CoeOut so it's not dangeorus anymore
+-- Porting note: Made Coe into CoeOut so it's not dangerous anymore
instance RayVector.coe [Zero M] : CoeOut (RayVector R M) M where
coe := Subtype.val
#align ray_vector.has_coe RayVector.coe
@@ -492,9 +492,6 @@ theorem units_smul_of_neg (u : Rˣ) (hu : u.1 < 0) (v : Module.Ray R M) : u •
rwa [Units.val_neg, Right.neg_pos_iff]
#align module.ray.units_smul_of_neg Module.Ray.units_smul_of_neg
--- Porting note: TODO Erase this line. Needed because we don't have η for classes. (lean4#2074)
-attribute [-instance] Ring.toNonAssocRing
-
@[simp]
protected theorem map_neg (f : M ≃ₗ[R] N) (v : Module.Ray R M) : map f (-v) = -map f v := by
induction' v using Module.Ray.ind with g hg
This PR fixes two things:
align
statements for definitions and theorems and instances that are separated by two newlines from the relevant declaration (s/\n\n#align/\n#align
). This is often seen in the mathport output after ending calc
blocks.#align
statements. (This was needed for a script I wrote for #3630.)@@ -526,7 +526,6 @@ theorem units_inv_smul (u : Rˣ) (v : Module.Ray R M) : u⁻¹ • v = u • v :
calc
u⁻¹ • v = (u * u) • u⁻¹ • v := Eq.symm <| (u⁻¹ • v).units_smul_of_pos _ (by exact this)
_ = u • v := by rw [mul_smul, smul_inv_smul]
-
#align units_inv_smul units_inv_smul
section
@@ -219,7 +219,7 @@ def RayVector (R M : Type _) [Zero M] :=
#align ray_vector RayVector
-- Porting note: Made Coe into CoeOut so it's not dangeorus anymore
-instance RayVector.coe {R M : Type _} {_ : Zero M} : CoeOut (RayVector R M) M where
+instance RayVector.coe [Zero M] : CoeOut (RayVector R M) M where
coe := Subtype.val
#align ray_vector.has_coe RayVector.coe
instance {R M : Type _} [Zero M] [Nontrivial M] : Nonempty (RayVector R M) :=
The unported dependencies are