analysis.convex.side
⟷
Mathlib.Analysis.Convex.Side
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)
(last sync)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -249,7 +249,7 @@ alias ⟨w_same_side.symm, _⟩ := w_same_side_comm
#print AffineSubspace.sSameSide_comm /-
theorem sSameSide_comm {s : AffineSubspace R P} {x y : P} : s.SSameSide x y ↔ s.SSameSide y x := by
- rw [s_same_side, s_same_side, w_same_side_comm, and_comm' (x ∉ s)]
+ rw [s_same_side, s_same_side, w_same_side_comm, and_comm (x ∉ s)]
#align affine_subspace.s_same_side_comm AffineSubspace.sSameSide_comm
-/
@@ -274,7 +274,7 @@ alias ⟨w_opp_side.symm, _⟩ := w_opp_side_comm
#print AffineSubspace.sOppSide_comm /-
theorem sOppSide_comm {s : AffineSubspace R P} {x y : P} : s.SOppSide x y ↔ s.SOppSide y x := by
- rw [s_opp_side, s_opp_side, w_opp_side_comm, and_comm' (x ∉ s)]
+ rw [s_opp_side, s_opp_side, w_opp_side_comm, and_comm (x ∉ s)]
#align affine_subspace.s_opp_side_comm AffineSubspace.sOppSide_comm
-/
@@ -600,7 +600,7 @@ theorem wSameSide_iff_exists_right {s : AffineSubspace R P} {x y p₂ : P} (h :
theorem sSameSide_iff_exists_left {s : AffineSubspace R P} {x y p₁ : P} (h : p₁ ∈ s) :
s.SSameSide x y ↔ x ∉ s ∧ y ∉ s ∧ ∃ p₂ ∈ s, SameRay R (x -ᵥ p₁) (y -ᵥ p₂) :=
by
- rw [s_same_side, and_comm', w_same_side_iff_exists_left h, and_assoc', and_congr_right_iff]
+ rw [s_same_side, and_comm, w_same_side_iff_exists_left h, and_assoc, and_congr_right_iff]
intro hx
rw [or_iff_right hx]
#align affine_subspace.s_same_side_iff_exists_left AffineSubspace.sSameSide_iff_exists_left
@@ -610,7 +610,7 @@ theorem sSameSide_iff_exists_left {s : AffineSubspace R P} {x y p₁ : P} (h : p
theorem sSameSide_iff_exists_right {s : AffineSubspace R P} {x y p₂ : P} (h : p₂ ∈ s) :
s.SSameSide x y ↔ x ∉ s ∧ y ∉ s ∧ ∃ p₁ ∈ s, SameRay R (x -ᵥ p₁) (y -ᵥ p₂) :=
by
- rw [s_same_side_comm, s_same_side_iff_exists_left h, ← and_assoc', and_comm' (y ∉ s), and_assoc']
+ rw [s_same_side_comm, s_same_side_iff_exists_left h, ← and_assoc, and_comm (y ∉ s), and_assoc]
simp_rw [SameRay.sameRay_comm]
#align affine_subspace.s_same_side_iff_exists_right AffineSubspace.sSameSide_iff_exists_right
-/
@@ -659,7 +659,7 @@ theorem wOppSide_iff_exists_right {s : AffineSubspace R P} {x y p₂ : P} (h : p
theorem sOppSide_iff_exists_left {s : AffineSubspace R P} {x y p₁ : P} (h : p₁ ∈ s) :
s.SOppSide x y ↔ x ∉ s ∧ y ∉ s ∧ ∃ p₂ ∈ s, SameRay R (x -ᵥ p₁) (p₂ -ᵥ y) :=
by
- rw [s_opp_side, and_comm', w_opp_side_iff_exists_left h, and_assoc', and_congr_right_iff]
+ rw [s_opp_side, and_comm, w_opp_side_iff_exists_left h, and_assoc, and_congr_right_iff]
intro hx
rw [or_iff_right hx]
#align affine_subspace.s_opp_side_iff_exists_left AffineSubspace.sOppSide_iff_exists_left
@@ -669,7 +669,7 @@ theorem sOppSide_iff_exists_left {s : AffineSubspace R P} {x y p₁ : P} (h : p
theorem sOppSide_iff_exists_right {s : AffineSubspace R P} {x y p₂ : P} (h : p₂ ∈ s) :
s.SOppSide x y ↔ x ∉ s ∧ y ∉ s ∧ ∃ p₁ ∈ s, SameRay R (x -ᵥ p₁) (p₂ -ᵥ y) :=
by
- rw [s_opp_side, and_comm', w_opp_side_iff_exists_right h, and_assoc', and_congr_right_iff,
+ rw [s_opp_side, and_comm, w_opp_side_iff_exists_right h, and_assoc, and_congr_right_iff,
and_congr_right_iff]
rintro hx hy
rw [or_iff_right hy]
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -43,7 +43,7 @@ variable [StrictOrderedCommRing R] [AddCommGroup V] [Module R V] [AddTorsor V P]
variable [AddCommGroup V'] [Module R V'] [AddTorsor V' P']
-/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (p₁ p₂ «expr ∈ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:642:2: warning: expanding binder collection (p₁ p₂ «expr ∈ » s) -/
#print AffineSubspace.WSameSide /-
/-- The points `x` and `y` are weakly on the same side of `s`. -/
def WSameSide (s : AffineSubspace R P) (x y : P) : Prop :=
@@ -58,7 +58,7 @@ def SSameSide (s : AffineSubspace R P) (x y : P) : Prop :=
#align affine_subspace.s_same_side AffineSubspace.SSameSide
-/
-/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (p₁ p₂ «expr ∈ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:642:2: warning: expanding binder collection (p₁ p₂ «expr ∈ » s) -/
#print AffineSubspace.WOppSide /-
/-- The points `x` and `y` are weakly on opposite sides of `s`. -/
def WOppSide (s : AffineSubspace R P) (x y : P) : Prop :=
@@ -579,7 +579,7 @@ theorem wSameSide_iff_exists_left {s : AffineSubspace R P} {x y p₁ : P} (h : p
Or.inr
⟨(r₁ / r₂) • (p₁ -ᵥ p₁') +ᵥ p₂', s.smul_vsub_vadd_mem _ h hp₁' hp₂',
Or.inr (Or.inr ⟨r₁, r₂, hr₁, hr₂, _⟩)⟩
- rw [vsub_vadd_eq_vsub_sub, smul_sub, ← hr, smul_smul, mul_div_cancel' _ hr₂.ne.symm, ←
+ rw [vsub_vadd_eq_vsub_sub, smul_sub, ← hr, smul_smul, mul_div_cancel₀ _ hr₂.ne.symm, ←
smul_sub, vsub_sub_vsub_cancel_right]
· rintro (h' | h')
· exact w_same_side_of_left_mem y h'
@@ -632,7 +632,7 @@ theorem wOppSide_iff_exists_left {s : AffineSubspace R P} {x y p₁ : P} (h : p
⟨(-r₁ / r₂) • (p₁ -ᵥ p₁') +ᵥ p₂', s.smul_vsub_vadd_mem _ h hp₁' hp₂',
Or.inr (Or.inr ⟨r₁, r₂, hr₁, hr₂, _⟩)⟩
rw [vadd_vsub_assoc, smul_add, ← hr, smul_smul, neg_div, mul_neg,
- mul_div_cancel' _ hr₂.ne.symm, neg_smul, neg_add_eq_sub, ← smul_sub,
+ mul_div_cancel₀ _ hr₂.ne.symm, neg_smul, neg_add_eq_sub, ← smul_sub,
vsub_sub_vsub_cancel_right]
· rintro (h' | h')
· exact w_opp_side_of_left_mem y h'
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -90,11 +90,11 @@ theorem Function.Injective.wSameSide_map_iff {s : AffineSubspace R P} {x y : P}
by
refine' ⟨fun h => _, fun h => h.map _⟩
rcases h with ⟨fp₁, hfp₁, fp₂, hfp₂, h⟩
- rw [mem_map] at hfp₁ hfp₂
+ rw [mem_map] at hfp₁ hfp₂
rcases hfp₁ with ⟨p₁, hp₁, rfl⟩
rcases hfp₂ with ⟨p₂, hp₂, rfl⟩
refine' ⟨p₁, hp₁, p₂, hp₂, _⟩
- simp_rw [← linear_map_vsub, (f.linear_injective_iff.2 hf).sameRay_map_iff] at h
+ simp_rw [← linear_map_vsub, (f.linear_injective_iff.2 hf).sameRay_map_iff] at h
exact h
#align function.injective.w_same_side_map_iff Function.Injective.wSameSide_map_iff
-/
@@ -139,11 +139,11 @@ theorem Function.Injective.wOppSide_map_iff {s : AffineSubspace R P} {x y : P} {
by
refine' ⟨fun h => _, fun h => h.map _⟩
rcases h with ⟨fp₁, hfp₁, fp₂, hfp₂, h⟩
- rw [mem_map] at hfp₁ hfp₂
+ rw [mem_map] at hfp₁ hfp₂
rcases hfp₁ with ⟨p₁, hp₁, rfl⟩
rcases hfp₂ with ⟨p₂, hp₂, rfl⟩
refine' ⟨p₁, hp₁, p₂, hp₂, _⟩
- simp_rw [← linear_map_vsub, (f.linear_injective_iff.2 hf).sameRay_map_iff] at h
+ simp_rw [← linear_map_vsub, (f.linear_injective_iff.2 hf).sameRay_map_iff] at h
exact h
#align function.injective.w_opp_side_map_iff Function.Injective.wOppSide_map_iff
-/
@@ -551,7 +551,7 @@ theorem wOppSide_self_iff {s : AffineSubspace R P} {x : P} : s.WOppSide x x ↔
constructor
· rintro ⟨p₁, hp₁, p₂, hp₂, h⟩
obtain ⟨a, -, -, -, -, h₁, -⟩ := h.exists_eq_smul_add
- rw [add_comm, vsub_add_vsub_cancel, ← eq_vadd_iff_vsub_eq] at h₁
+ rw [add_comm, vsub_add_vsub_cancel, ← eq_vadd_iff_vsub_eq] at h₁
rw [h₁]
exact s.smul_vsub_vadd_mem a hp₂ hp₁ hp₁
· exact fun h => ⟨x, h, x, h, SameRay.rfl⟩
@@ -569,7 +569,7 @@ theorem wSameSide_iff_exists_left {s : AffineSubspace R P} {x y p₁ : P} (h : p
by
constructor
· rintro ⟨p₁', hp₁', p₂', hp₂', h0 | h0 | ⟨r₁, r₂, hr₁, hr₂, hr⟩⟩
- · rw [vsub_eq_zero_iff_eq] at h0
+ · rw [vsub_eq_zero_iff_eq] at h0
rw [h0]
exact Or.inl hp₁'
· refine' Or.inr ⟨p₂', hp₂', _⟩
@@ -621,7 +621,7 @@ theorem wOppSide_iff_exists_left {s : AffineSubspace R P} {x y p₁ : P} (h : p
by
constructor
· rintro ⟨p₁', hp₁', p₂', hp₂', h0 | h0 | ⟨r₁, r₂, hr₁, hr₂, hr⟩⟩
- · rw [vsub_eq_zero_iff_eq] at h0
+ · rw [vsub_eq_zero_iff_eq] at h0
rw [h0]
exact Or.inl hp₁'
· refine' Or.inr ⟨p₂', hp₂', _⟩
@@ -681,11 +681,11 @@ theorem WSameSide.trans {s : AffineSubspace R P} {x y z : P} (hxy : s.WSameSide
(hyz : s.WSameSide y z) (hy : y ∉ s) : s.WSameSide x z :=
by
rcases hxy with ⟨p₁, hp₁, p₂, hp₂, hxy⟩
- rw [w_same_side_iff_exists_left hp₂, or_iff_right hy] at hyz
+ rw [w_same_side_iff_exists_left hp₂, or_iff_right hy] at hyz
rcases hyz with ⟨p₃, hp₃, hyz⟩
refine' ⟨p₁, hp₁, p₃, hp₃, hxy.trans hyz _⟩
refine' fun h => False.elim _
- rw [vsub_eq_zero_iff_eq] at h
+ rw [vsub_eq_zero_iff_eq] at h
exact hy (h.symm ▸ hp₂)
#align affine_subspace.w_same_side.trans AffineSubspace.WSameSide.trans
-/
@@ -702,11 +702,11 @@ theorem WSameSide.trans_wOppSide {s : AffineSubspace R P} {x y z : P} (hxy : s.W
(hyz : s.WOppSide y z) (hy : y ∉ s) : s.WOppSide x z :=
by
rcases hxy with ⟨p₁, hp₁, p₂, hp₂, hxy⟩
- rw [w_opp_side_iff_exists_left hp₂, or_iff_right hy] at hyz
+ rw [w_opp_side_iff_exists_left hp₂, or_iff_right hy] at hyz
rcases hyz with ⟨p₃, hp₃, hyz⟩
refine' ⟨p₁, hp₁, p₃, hp₃, hxy.trans hyz _⟩
refine' fun h => False.elim _
- rw [vsub_eq_zero_iff_eq] at h
+ rw [vsub_eq_zero_iff_eq] at h
exact hy (h.symm ▸ hp₂)
#align affine_subspace.w_same_side.trans_w_opp_side AffineSubspace.WSameSide.trans_wOppSide
-/
@@ -765,12 +765,12 @@ theorem WOppSide.trans {s : AffineSubspace R P} {x y z : P} (hxy : s.WOppSide x
(hyz : s.WOppSide y z) (hy : y ∉ s) : s.WSameSide x z :=
by
rcases hxy with ⟨p₁, hp₁, p₂, hp₂, hxy⟩
- rw [w_opp_side_iff_exists_left hp₂, or_iff_right hy] at hyz
+ rw [w_opp_side_iff_exists_left hp₂, or_iff_right hy] at hyz
rcases hyz with ⟨p₃, hp₃, hyz⟩
- rw [← sameRay_neg_iff, neg_vsub_eq_vsub_rev, neg_vsub_eq_vsub_rev] at hyz
+ rw [← sameRay_neg_iff, neg_vsub_eq_vsub_rev, neg_vsub_eq_vsub_rev] at hyz
refine' ⟨p₁, hp₁, p₃, hp₃, hxy.trans hyz _⟩
refine' fun h => False.elim _
- rw [vsub_eq_zero_iff_eq] at h
+ rw [vsub_eq_zero_iff_eq] at h
exact hy (h ▸ hp₂)
#align affine_subspace.w_opp_side.trans AffineSubspace.WOppSide.trans
-/
@@ -816,9 +816,9 @@ theorem wSameSide_and_wOppSide_iff {s : AffineSubspace R P} {x y : P} :
by
constructor
· rintro ⟨hs, ho⟩
- rw [w_opp_side_comm] at ho
+ rw [w_opp_side_comm] at ho
by_contra h
- rw [not_or] at h
+ rw [not_or] at h
exact h.1 (w_opp_side_self_iff.1 (hs.trans_w_opp_side ho h.2))
· rintro (h | h)
· exact ⟨w_same_side_of_left_mem y h, w_opp_side_of_left_mem y h⟩
@@ -878,10 +878,10 @@ theorem wOppSide_iff_exists_wbtw {s : AffineSubspace R P} {x y : P} :
by
refine' ⟨fun h => _, fun ⟨p, hp, h⟩ => h.wOppSide₁₃ hp⟩
rcases h with ⟨p₁, hp₁, p₂, hp₂, h | h | ⟨r₁, r₂, hr₁, hr₂, h⟩⟩
- · rw [vsub_eq_zero_iff_eq] at h
+ · rw [vsub_eq_zero_iff_eq] at h
rw [h]
exact ⟨p₁, hp₁, wbtw_self_left _ _ _⟩
- · rw [vsub_eq_zero_iff_eq] at h
+ · rw [vsub_eq_zero_iff_eq] at h
rw [← h]
exact ⟨p₂, hp₂, wbtw_self_right _ _ _⟩
· refine' ⟨line_map x y (r₂ / (r₁ + r₂)), _, _⟩
@@ -919,12 +919,12 @@ theorem Sbtw.sOppSide_of_not_mem_of_mem {s : AffineSubspace R P} {x y z : P} (h
by
refine' ⟨h.wbtw.w_opp_side₁₃ hy, hx, fun hz => hx _⟩
rcases h with ⟨⟨t, ⟨ht0, ht1⟩, rfl⟩, hyx, hyz⟩
- rw [line_map_apply] at hy
+ rw [line_map_apply] at hy
have ht : t ≠ 1 := by rintro rfl; simpa [line_map_apply] using hyz
have hy' := vsub_mem_direction hy hz
rw [vadd_vsub_assoc, ← neg_vsub_eq_vsub_rev z, ← neg_one_smul R (z -ᵥ x), ← add_smul, ←
- sub_eq_add_neg, s.direction.smul_mem_iff (sub_ne_zero_of_ne ht)] at hy'
- rwa [vadd_mem_iff_mem_of_mem_direction (Submodule.smul_mem _ _ hy')] at hy
+ sub_eq_add_neg, s.direction.smul_mem_iff (sub_ne_zero_of_ne ht)] at hy'
+ rwa [vadd_mem_iff_mem_of_mem_direction (Submodule.smul_mem _ _ hy')] at hy
#align sbtw.s_opp_side_of_not_mem_of_mem Sbtw.sOppSide_of_not_mem_of_mem
-/
@@ -934,7 +934,7 @@ theorem sSameSide_smul_vsub_vadd_left {s : AffineSubspace R P} {x p₁ p₂ : P}
by
refine' ⟨w_same_side_smul_vsub_vadd_left x hp₁ hp₂ ht.le, fun h => hx _, hx⟩
rwa [vadd_mem_iff_mem_direction _ hp₂, s.direction.smul_mem_iff ht.ne.symm,
- vsub_right_mem_direction_iff_mem hp₁] at h
+ vsub_right_mem_direction_iff_mem hp₁] at h
#align affine_subspace.s_same_side_smul_vsub_vadd_left AffineSubspace.sSameSide_smul_vsub_vadd_left
-/
@@ -965,7 +965,7 @@ theorem sOppSide_smul_vsub_vadd_left {s : AffineSubspace R P} {x p₁ p₂ : P}
by
refine' ⟨w_opp_side_smul_vsub_vadd_left x hp₁ hp₂ ht.le, fun h => hx _, hx⟩
rwa [vadd_mem_iff_mem_direction _ hp₂, s.direction.smul_mem_iff ht.ne,
- vsub_right_mem_direction_iff_mem hp₁] at h
+ vsub_right_mem_direction_iff_mem hp₁] at h
#align affine_subspace.s_opp_side_smul_vsub_vadd_left AffineSubspace.sOppSide_smul_vsub_vadd_left
-/
@@ -999,9 +999,9 @@ theorem setOf_wSameSide_eq_image2 {s : AffineSubspace R P} {x p : P} (hx : x ∉
constructor
· rw [w_same_side_iff_exists_left hp, or_iff_right hx]
rintro ⟨p₂, hp₂, h | h | ⟨r₁, r₂, hr₁, hr₂, h⟩⟩
- · rw [vsub_eq_zero_iff_eq] at h
+ · rw [vsub_eq_zero_iff_eq] at h
exact False.elim (hx (h.symm ▸ hp))
- · rw [vsub_eq_zero_iff_eq] at h
+ · rw [vsub_eq_zero_iff_eq] at h
refine' ⟨0, p₂, le_refl _, hp₂, _⟩
simp [h]
· refine' ⟨r₁ / r₂, p₂, (div_pos hr₁ hr₂).le, hp₂, _⟩
@@ -1021,9 +1021,9 @@ theorem setOf_sSameSide_eq_image2 {s : AffineSubspace R P} {x p : P} (hx : x ∉
constructor
· rw [s_same_side_iff_exists_left hp]
rintro ⟨-, hy, p₂, hp₂, h | h | ⟨r₁, r₂, hr₁, hr₂, h⟩⟩
- · rw [vsub_eq_zero_iff_eq] at h
+ · rw [vsub_eq_zero_iff_eq] at h
exact False.elim (hx (h.symm ▸ hp))
- · rw [vsub_eq_zero_iff_eq] at h
+ · rw [vsub_eq_zero_iff_eq] at h
exact False.elim (hy (h.symm ▸ hp₂))
· refine' ⟨r₁ / r₂, p₂, div_pos hr₁ hr₂, hp₂, _⟩
rw [div_eq_inv_mul, ← smul_smul, h, smul_smul, inv_mul_cancel hr₂.ne.symm, one_smul,
@@ -1042,9 +1042,9 @@ theorem setOf_wOppSide_eq_image2 {s : AffineSubspace R P} {x p : P} (hx : x ∉
constructor
· rw [w_opp_side_iff_exists_left hp, or_iff_right hx]
rintro ⟨p₂, hp₂, h | h | ⟨r₁, r₂, hr₁, hr₂, h⟩⟩
- · rw [vsub_eq_zero_iff_eq] at h
+ · rw [vsub_eq_zero_iff_eq] at h
exact False.elim (hx (h.symm ▸ hp))
- · rw [vsub_eq_zero_iff_eq] at h
+ · rw [vsub_eq_zero_iff_eq] at h
refine' ⟨0, p₂, le_refl _, hp₂, _⟩
simp [h]
· refine' ⟨-r₁ / r₂, p₂, (div_neg_of_neg_of_pos (Left.neg_neg_iff.2 hr₁) hr₂).le, hp₂, _⟩
@@ -1064,9 +1064,9 @@ theorem setOf_sOppSide_eq_image2 {s : AffineSubspace R P} {x p : P} (hx : x ∉
constructor
· rw [s_opp_side_iff_exists_left hp]
rintro ⟨-, hy, p₂, hp₂, h | h | ⟨r₁, r₂, hr₁, hr₂, h⟩⟩
- · rw [vsub_eq_zero_iff_eq] at h
+ · rw [vsub_eq_zero_iff_eq] at h
exact False.elim (hx (h.symm ▸ hp))
- · rw [vsub_eq_zero_iff_eq] at h
+ · rw [vsub_eq_zero_iff_eq] at h
exact False.elim (hy (h ▸ hp₂))
· refine' ⟨-r₁ / r₂, p₂, div_neg_of_neg_of_pos (Left.neg_neg_iff.2 hr₁) hr₂, hp₂, _⟩
rw [div_eq_inv_mul, ← smul_smul, neg_smul, h, smul_neg, smul_smul, inv_mul_cancel hr₂.ne.symm,
@@ -1124,7 +1124,7 @@ theorem isPreconnected_setOf_wSameSide (s : AffineSubspace ℝ P) (x : P) :
by
rcases Set.eq_empty_or_nonempty (s : Set P) with (h | h)
· convert isPreconnected_empty
- rw [coe_eq_bot_iff] at h
+ rw [coe_eq_bot_iff] at h
simp only [h, not_w_same_side_bot]
rfl
· exact (is_connected_set_of_w_same_side x h).IsPreconnected
@@ -1151,7 +1151,7 @@ theorem isPreconnected_setOf_sSameSide (s : AffineSubspace ℝ P) (x : P) :
by
rcases Set.eq_empty_or_nonempty (s : Set P) with (h | h)
· convert isPreconnected_empty
- rw [coe_eq_bot_iff] at h
+ rw [coe_eq_bot_iff] at h
simp only [h, not_s_same_side_bot]
rfl
· by_cases hx : x ∈ s
@@ -1185,7 +1185,7 @@ theorem isPreconnected_setOf_wOppSide (s : AffineSubspace ℝ P) (x : P) :
by
rcases Set.eq_empty_or_nonempty (s : Set P) with (h | h)
· convert isPreconnected_empty
- rw [coe_eq_bot_iff] at h
+ rw [coe_eq_bot_iff] at h
simp only [h, not_w_opp_side_bot]
rfl
· exact (is_connected_set_of_w_opp_side x h).IsPreconnected
@@ -1212,7 +1212,7 @@ theorem isPreconnected_setOf_sOppSide (s : AffineSubspace ℝ P) (x : P) :
by
rcases Set.eq_empty_or_nonempty (s : Set P) with (h | h)
· convert isPreconnected_empty
- rw [coe_eq_bot_iff] at h
+ rw [coe_eq_bot_iff] at h
simp only [h, not_s_opp_side_bot]
rfl
· by_cases hx : x ∈ s
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,9 +3,9 @@ Copyright (c) 2022 Joseph Myers. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Joseph Myers
-/
-import Mathbin.Analysis.Convex.Between
-import Mathbin.Analysis.Convex.Normed
-import Mathbin.Analysis.Normed.Group.AddTorsor
+import Analysis.Convex.Between
+import Analysis.Convex.Normed
+import Analysis.Normed.Group.AddTorsor
#align_import analysis.convex.side from "leanprover-community/mathlib"@"61db041ab8e4aaf8cb5c7dc10a7d4ff261997536"
@@ -43,7 +43,7 @@ variable [StrictOrderedCommRing R] [AddCommGroup V] [Module R V] [AddTorsor V P]
variable [AddCommGroup V'] [Module R V'] [AddTorsor V' P']
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (p₁ p₂ «expr ∈ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (p₁ p₂ «expr ∈ » s) -/
#print AffineSubspace.WSameSide /-
/-- The points `x` and `y` are weakly on the same side of `s`. -/
def WSameSide (s : AffineSubspace R P) (x y : P) : Prop :=
@@ -58,7 +58,7 @@ def SSameSide (s : AffineSubspace R P) (x y : P) : Prop :=
#align affine_subspace.s_same_side AffineSubspace.SSameSide
-/
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (p₁ p₂ «expr ∈ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (p₁ p₂ «expr ∈ » s) -/
#print AffineSubspace.WOppSide /-
/-- The points `x` and `y` are weakly on opposite sides of `s`. -/
def WOppSide (s : AffineSubspace R P) (x y : P) : Prop :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/32a7e535287f9c73f2e4d2aef306a39190f0b504
@@ -244,7 +244,7 @@ theorem wSameSide_comm {s : AffineSubspace R P} {x y : P} : s.WSameSide x y ↔
#align affine_subspace.w_same_side_comm AffineSubspace.wSameSide_comm
-/
-alias w_same_side_comm ↔ w_same_side.symm _
+alias ⟨w_same_side.symm, _⟩ := w_same_side_comm
#align affine_subspace.w_same_side.symm AffineSubspace.WSameSide.symm
#print AffineSubspace.sSameSide_comm /-
@@ -253,7 +253,7 @@ theorem sSameSide_comm {s : AffineSubspace R P} {x y : P} : s.SSameSide x y ↔
#align affine_subspace.s_same_side_comm AffineSubspace.sSameSide_comm
-/
-alias s_same_side_comm ↔ s_same_side.symm _
+alias ⟨s_same_side.symm, _⟩ := s_same_side_comm
#align affine_subspace.s_same_side.symm AffineSubspace.SSameSide.symm
#print AffineSubspace.wOppSide_comm /-
@@ -269,7 +269,7 @@ theorem wOppSide_comm {s : AffineSubspace R P} {x y : P} : s.WOppSide x y ↔ s.
#align affine_subspace.w_opp_side_comm AffineSubspace.wOppSide_comm
-/
-alias w_opp_side_comm ↔ w_opp_side.symm _
+alias ⟨w_opp_side.symm, _⟩ := w_opp_side_comm
#align affine_subspace.w_opp_side.symm AffineSubspace.WOppSide.symm
#print AffineSubspace.sOppSide_comm /-
@@ -278,7 +278,7 @@ theorem sOppSide_comm {s : AffineSubspace R P} {x y : P} : s.SOppSide x y ↔ s.
#align affine_subspace.s_opp_side_comm AffineSubspace.sOppSide_comm
-/
-alias s_opp_side_comm ↔ s_opp_side.symm _
+alias ⟨s_opp_side.symm, _⟩ := s_opp_side_comm
#align affine_subspace.s_opp_side.symm AffineSubspace.SOppSide.symm
#print AffineSubspace.not_wSameSide_bot /-
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,16 +2,13 @@
Copyright (c) 2022 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 analysis.convex.side
-! leanprover-community/mathlib commit 61db041ab8e4aaf8cb5c7dc10a7d4ff261997536
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.Analysis.Convex.Between
import Mathbin.Analysis.Convex.Normed
import Mathbin.Analysis.Normed.Group.AddTorsor
+#align_import analysis.convex.side from "leanprover-community/mathlib"@"61db041ab8e4aaf8cb5c7dc10a7d4ff261997536"
+
/-!
# Sides of affine subspaces
@@ -46,7 +43,7 @@ variable [StrictOrderedCommRing R] [AddCommGroup V] [Module R V] [AddTorsor V P]
variable [AddCommGroup V'] [Module R V'] [AddTorsor V' P']
-/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (p₁ p₂ «expr ∈ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (p₁ p₂ «expr ∈ » s) -/
#print AffineSubspace.WSameSide /-
/-- The points `x` and `y` are weakly on the same side of `s`. -/
def WSameSide (s : AffineSubspace R P) (x y : P) : Prop :=
@@ -61,7 +58,7 @@ def SSameSide (s : AffineSubspace R P) (x y : P) : Prop :=
#align affine_subspace.s_same_side AffineSubspace.SSameSide
-/
-/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (p₁ p₂ «expr ∈ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (p₁ p₂ «expr ∈ » s) -/
#print AffineSubspace.WOppSide /-
/-- The points `x` and `y` are weakly on opposite sides of `s`. -/
def WOppSide (s : AffineSubspace R P) (x y : P) : Prop :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -46,8 +46,6 @@ variable [StrictOrderedCommRing R] [AddCommGroup V] [Module R V] [AddTorsor V P]
variable [AddCommGroup V'] [Module R V'] [AddTorsor V' P']
-include V
-
/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (p₁ p₂ «expr ∈ » s) -/
#print AffineSubspace.WSameSide /-
/-- The points `x` and `y` are weakly on the same side of `s`. -/
@@ -78,8 +76,7 @@ def SOppSide (s : AffineSubspace R P) (x y : P) : Prop :=
#align affine_subspace.s_opp_side AffineSubspace.SOppSide
-/
-include V'
-
+#print AffineSubspace.WSameSide.map /-
theorem WSameSide.map {s : AffineSubspace R P} {x y : P} (h : s.WSameSide x y) (f : P →ᵃ[R] P') :
(s.map f).WSameSide (f x) (f y) :=
by
@@ -88,7 +85,9 @@ theorem WSameSide.map {s : AffineSubspace R P} {x y : P} (h : s.WSameSide x y) (
simp_rw [← linear_map_vsub]
exact h.map f.linear
#align affine_subspace.w_same_side.map AffineSubspace.WSameSide.map
+-/
+#print Function.Injective.wSameSide_map_iff /-
theorem Function.Injective.wSameSide_map_iff {s : AffineSubspace R P} {x y : P} {f : P →ᵃ[R] P'}
(hf : Function.Injective f) : (s.map f).WSameSide (f x) (f y) ↔ s.WSameSide x y :=
by
@@ -101,24 +100,32 @@ theorem Function.Injective.wSameSide_map_iff {s : AffineSubspace R P} {x y : P}
simp_rw [← linear_map_vsub, (f.linear_injective_iff.2 hf).sameRay_map_iff] at h
exact h
#align function.injective.w_same_side_map_iff Function.Injective.wSameSide_map_iff
+-/
+#print Function.Injective.sSameSide_map_iff /-
theorem Function.Injective.sSameSide_map_iff {s : AffineSubspace R P} {x y : P} {f : P →ᵃ[R] P'}
(hf : Function.Injective f) : (s.map f).SSameSide (f x) (f y) ↔ s.SSameSide x y := by
simp_rw [s_same_side, hf.w_same_side_map_iff, mem_map_iff_mem_of_injective hf]
#align function.injective.s_same_side_map_iff Function.Injective.sSameSide_map_iff
+-/
+#print AffineEquiv.wSameSide_map_iff /-
@[simp]
theorem AffineEquiv.wSameSide_map_iff {s : AffineSubspace R P} {x y : P} (f : P ≃ᵃ[R] P') :
(s.map ↑f).WSameSide (f x) (f y) ↔ s.WSameSide x y :=
(show Function.Injective f.toAffineMap from f.Injective).wSameSide_map_iff
#align affine_equiv.w_same_side_map_iff AffineEquiv.wSameSide_map_iff
+-/
+#print AffineEquiv.sSameSide_map_iff /-
@[simp]
theorem AffineEquiv.sSameSide_map_iff {s : AffineSubspace R P} {x y : P} (f : P ≃ᵃ[R] P') :
(s.map ↑f).SSameSide (f x) (f y) ↔ s.SSameSide x y :=
(show Function.Injective f.toAffineMap from f.Injective).sSameSide_map_iff
#align affine_equiv.s_same_side_map_iff AffineEquiv.sSameSide_map_iff
+-/
+#print AffineSubspace.WOppSide.map /-
theorem WOppSide.map {s : AffineSubspace R P} {x y : P} (h : s.WOppSide x y) (f : P →ᵃ[R] P') :
(s.map f).WOppSide (f x) (f y) :=
by
@@ -127,7 +134,9 @@ theorem WOppSide.map {s : AffineSubspace R P} {x y : P} (h : s.WOppSide x y) (f
simp_rw [← linear_map_vsub]
exact h.map f.linear
#align affine_subspace.w_opp_side.map AffineSubspace.WOppSide.map
+-/
+#print Function.Injective.wOppSide_map_iff /-
theorem Function.Injective.wOppSide_map_iff {s : AffineSubspace R P} {x y : P} {f : P →ᵃ[R] P'}
(hf : Function.Injective f) : (s.map f).WOppSide (f x) (f y) ↔ s.WOppSide x y :=
by
@@ -140,87 +149,117 @@ theorem Function.Injective.wOppSide_map_iff {s : AffineSubspace R P} {x y : P} {
simp_rw [← linear_map_vsub, (f.linear_injective_iff.2 hf).sameRay_map_iff] at h
exact h
#align function.injective.w_opp_side_map_iff Function.Injective.wOppSide_map_iff
+-/
+#print Function.Injective.sOppSide_map_iff /-
theorem Function.Injective.sOppSide_map_iff {s : AffineSubspace R P} {x y : P} {f : P →ᵃ[R] P'}
(hf : Function.Injective f) : (s.map f).SOppSide (f x) (f y) ↔ s.SOppSide x y := by
simp_rw [s_opp_side, hf.w_opp_side_map_iff, mem_map_iff_mem_of_injective hf]
#align function.injective.s_opp_side_map_iff Function.Injective.sOppSide_map_iff
+-/
+#print AffineEquiv.wOppSide_map_iff /-
@[simp]
theorem AffineEquiv.wOppSide_map_iff {s : AffineSubspace R P} {x y : P} (f : P ≃ᵃ[R] P') :
(s.map ↑f).WOppSide (f x) (f y) ↔ s.WOppSide x y :=
(show Function.Injective f.toAffineMap from f.Injective).wOppSide_map_iff
#align affine_equiv.w_opp_side_map_iff AffineEquiv.wOppSide_map_iff
+-/
+#print AffineEquiv.sOppSide_map_iff /-
@[simp]
theorem AffineEquiv.sOppSide_map_iff {s : AffineSubspace R P} {x y : P} (f : P ≃ᵃ[R] P') :
(s.map ↑f).SOppSide (f x) (f y) ↔ s.SOppSide x y :=
(show Function.Injective f.toAffineMap from f.Injective).sOppSide_map_iff
#align affine_equiv.s_opp_side_map_iff AffineEquiv.sOppSide_map_iff
+-/
-omit V'
-
+#print AffineSubspace.WSameSide.nonempty /-
theorem WSameSide.nonempty {s : AffineSubspace R P} {x y : P} (h : s.WSameSide x y) :
(s : Set P).Nonempty :=
⟨h.some, h.choose_spec.some⟩
#align affine_subspace.w_same_side.nonempty AffineSubspace.WSameSide.nonempty
+-/
+#print AffineSubspace.SSameSide.nonempty /-
theorem SSameSide.nonempty {s : AffineSubspace R P} {x y : P} (h : s.SSameSide x y) :
(s : Set P).Nonempty :=
⟨h.1.some, h.1.choose_spec.some⟩
#align affine_subspace.s_same_side.nonempty AffineSubspace.SSameSide.nonempty
+-/
+#print AffineSubspace.WOppSide.nonempty /-
theorem WOppSide.nonempty {s : AffineSubspace R P} {x y : P} (h : s.WOppSide x y) :
(s : Set P).Nonempty :=
⟨h.some, h.choose_spec.some⟩
#align affine_subspace.w_opp_side.nonempty AffineSubspace.WOppSide.nonempty
+-/
+#print AffineSubspace.SOppSide.nonempty /-
theorem SOppSide.nonempty {s : AffineSubspace R P} {x y : P} (h : s.SOppSide x y) :
(s : Set P).Nonempty :=
⟨h.1.some, h.1.choose_spec.some⟩
#align affine_subspace.s_opp_side.nonempty AffineSubspace.SOppSide.nonempty
+-/
+#print AffineSubspace.SSameSide.wSameSide /-
theorem SSameSide.wSameSide {s : AffineSubspace R P} {x y : P} (h : s.SSameSide x y) :
s.WSameSide x y :=
h.1
#align affine_subspace.s_same_side.w_same_side AffineSubspace.SSameSide.wSameSide
+-/
+#print AffineSubspace.SSameSide.left_not_mem /-
theorem SSameSide.left_not_mem {s : AffineSubspace R P} {x y : P} (h : s.SSameSide x y) : x ∉ s :=
h.2.1
#align affine_subspace.s_same_side.left_not_mem AffineSubspace.SSameSide.left_not_mem
+-/
+#print AffineSubspace.SSameSide.right_not_mem /-
theorem SSameSide.right_not_mem {s : AffineSubspace R P} {x y : P} (h : s.SSameSide x y) : y ∉ s :=
h.2.2
#align affine_subspace.s_same_side.right_not_mem AffineSubspace.SSameSide.right_not_mem
+-/
+#print AffineSubspace.SOppSide.wOppSide /-
theorem SOppSide.wOppSide {s : AffineSubspace R P} {x y : P} (h : s.SOppSide x y) :
s.WOppSide x y :=
h.1
#align affine_subspace.s_opp_side.w_opp_side AffineSubspace.SOppSide.wOppSide
+-/
+#print AffineSubspace.SOppSide.left_not_mem /-
theorem SOppSide.left_not_mem {s : AffineSubspace R P} {x y : P} (h : s.SOppSide x y) : x ∉ s :=
h.2.1
#align affine_subspace.s_opp_side.left_not_mem AffineSubspace.SOppSide.left_not_mem
+-/
+#print AffineSubspace.SOppSide.right_not_mem /-
theorem SOppSide.right_not_mem {s : AffineSubspace R P} {x y : P} (h : s.SOppSide x y) : y ∉ s :=
h.2.2
#align affine_subspace.s_opp_side.right_not_mem AffineSubspace.SOppSide.right_not_mem
+-/
+#print AffineSubspace.wSameSide_comm /-
theorem wSameSide_comm {s : AffineSubspace R P} {x y : P} : s.WSameSide x y ↔ s.WSameSide y x :=
⟨fun ⟨p₁, hp₁, p₂, hp₂, h⟩ => ⟨p₂, hp₂, p₁, hp₁, h.symm⟩, fun ⟨p₁, hp₁, p₂, hp₂, h⟩ =>
⟨p₂, hp₂, p₁, hp₁, h.symm⟩⟩
#align affine_subspace.w_same_side_comm AffineSubspace.wSameSide_comm
+-/
alias w_same_side_comm ↔ w_same_side.symm _
#align affine_subspace.w_same_side.symm AffineSubspace.WSameSide.symm
+#print AffineSubspace.sSameSide_comm /-
theorem sSameSide_comm {s : AffineSubspace R P} {x y : P} : s.SSameSide x y ↔ s.SSameSide y x := by
rw [s_same_side, s_same_side, w_same_side_comm, and_comm' (x ∉ s)]
#align affine_subspace.s_same_side_comm AffineSubspace.sSameSide_comm
+-/
alias s_same_side_comm ↔ s_same_side.symm _
#align affine_subspace.s_same_side.symm AffineSubspace.SSameSide.symm
+#print AffineSubspace.wOppSide_comm /-
theorem wOppSide_comm {s : AffineSubspace R P} {x y : P} : s.WOppSide x y ↔ s.WOppSide y x :=
by
constructor
@@ -231,66 +270,90 @@ theorem wOppSide_comm {s : AffineSubspace R P} {x y : P} : s.WOppSide x y ↔ s.
refine' ⟨p₂, hp₂, p₁, hp₁, _⟩
rwa [SameRay.sameRay_comm, ← sameRay_neg_iff, neg_vsub_eq_vsub_rev, neg_vsub_eq_vsub_rev]
#align affine_subspace.w_opp_side_comm AffineSubspace.wOppSide_comm
+-/
alias w_opp_side_comm ↔ w_opp_side.symm _
#align affine_subspace.w_opp_side.symm AffineSubspace.WOppSide.symm
+#print AffineSubspace.sOppSide_comm /-
theorem sOppSide_comm {s : AffineSubspace R P} {x y : P} : s.SOppSide x y ↔ s.SOppSide y x := by
rw [s_opp_side, s_opp_side, w_opp_side_comm, and_comm' (x ∉ s)]
#align affine_subspace.s_opp_side_comm AffineSubspace.sOppSide_comm
+-/
alias s_opp_side_comm ↔ s_opp_side.symm _
#align affine_subspace.s_opp_side.symm AffineSubspace.SOppSide.symm
+#print AffineSubspace.not_wSameSide_bot /-
theorem not_wSameSide_bot (x y : P) : ¬(⊥ : AffineSubspace R P).WSameSide x y := by
simp [w_same_side, not_mem_bot]
#align affine_subspace.not_w_same_side_bot AffineSubspace.not_wSameSide_bot
+-/
+#print AffineSubspace.not_sSameSide_bot /-
theorem not_sSameSide_bot (x y : P) : ¬(⊥ : AffineSubspace R P).SSameSide x y := fun h =>
not_wSameSide_bot x y h.WSameSide
#align affine_subspace.not_s_same_side_bot AffineSubspace.not_sSameSide_bot
+-/
+#print AffineSubspace.not_wOppSide_bot /-
theorem not_wOppSide_bot (x y : P) : ¬(⊥ : AffineSubspace R P).WOppSide x y := by
simp [w_opp_side, not_mem_bot]
#align affine_subspace.not_w_opp_side_bot AffineSubspace.not_wOppSide_bot
+-/
+#print AffineSubspace.not_sOppSide_bot /-
theorem not_sOppSide_bot (x y : P) : ¬(⊥ : AffineSubspace R P).SOppSide x y := fun h =>
not_wOppSide_bot x y h.WOppSide
#align affine_subspace.not_s_opp_side_bot AffineSubspace.not_sOppSide_bot
+-/
+#print AffineSubspace.wSameSide_self_iff /-
@[simp]
theorem wSameSide_self_iff {s : AffineSubspace R P} {x : P} :
s.WSameSide x x ↔ (s : Set P).Nonempty :=
⟨fun h => h.Nonempty, fun ⟨p, hp⟩ => ⟨p, hp, p, hp, SameRay.rfl⟩⟩
#align affine_subspace.w_same_side_self_iff AffineSubspace.wSameSide_self_iff
+-/
+#print AffineSubspace.sSameSide_self_iff /-
theorem sSameSide_self_iff {s : AffineSubspace R P} {x : P} :
s.SSameSide x x ↔ (s : Set P).Nonempty ∧ x ∉ s :=
⟨fun ⟨h, hx, _⟩ => ⟨wSameSide_self_iff.1 h, hx⟩, fun ⟨h, hx⟩ => ⟨wSameSide_self_iff.2 h, hx, hx⟩⟩
#align affine_subspace.s_same_side_self_iff AffineSubspace.sSameSide_self_iff
+-/
+#print AffineSubspace.wSameSide_of_left_mem /-
theorem wSameSide_of_left_mem {s : AffineSubspace R P} {x : P} (y : P) (hx : x ∈ s) :
s.WSameSide x y := by
refine' ⟨x, hx, x, hx, _⟩
simp
#align affine_subspace.w_same_side_of_left_mem AffineSubspace.wSameSide_of_left_mem
+-/
+#print AffineSubspace.wSameSide_of_right_mem /-
theorem wSameSide_of_right_mem {s : AffineSubspace R P} (x : P) {y : P} (hy : y ∈ s) :
s.WSameSide x y :=
(wSameSide_of_left_mem x hy).symm
#align affine_subspace.w_same_side_of_right_mem AffineSubspace.wSameSide_of_right_mem
+-/
+#print AffineSubspace.wOppSide_of_left_mem /-
theorem wOppSide_of_left_mem {s : AffineSubspace R P} {x : P} (y : P) (hx : x ∈ s) :
s.WOppSide x y := by
refine' ⟨x, hx, x, hx, _⟩
simp
#align affine_subspace.w_opp_side_of_left_mem AffineSubspace.wOppSide_of_left_mem
+-/
+#print AffineSubspace.wOppSide_of_right_mem /-
theorem wOppSide_of_right_mem {s : AffineSubspace R P} (x : P) {y : P} (hy : y ∈ s) :
s.WOppSide x y :=
(wOppSide_of_left_mem x hy).symm
#align affine_subspace.w_opp_side_of_right_mem AffineSubspace.wOppSide_of_right_mem
+-/
+#print AffineSubspace.wSameSide_vadd_left_iff /-
theorem wSameSide_vadd_left_iff {s : AffineSubspace R P} {x y : P} {v : V} (hv : v ∈ s.direction) :
s.WSameSide (v +ᵥ x) y ↔ s.WSameSide x y :=
by
@@ -303,22 +366,30 @@ theorem wSameSide_vadd_left_iff {s : AffineSubspace R P} {x y : P} {v : V} (hv :
refine' ⟨v +ᵥ p₁, AffineSubspace.vadd_mem_of_mem_direction hv hp₁, p₂, hp₂, _⟩
rwa [vadd_vsub_vadd_cancel_left]
#align affine_subspace.w_same_side_vadd_left_iff AffineSubspace.wSameSide_vadd_left_iff
+-/
+#print AffineSubspace.wSameSide_vadd_right_iff /-
theorem wSameSide_vadd_right_iff {s : AffineSubspace R P} {x y : P} {v : V} (hv : v ∈ s.direction) :
s.WSameSide x (v +ᵥ y) ↔ s.WSameSide x y := by
rw [w_same_side_comm, w_same_side_vadd_left_iff hv, w_same_side_comm]
#align affine_subspace.w_same_side_vadd_right_iff AffineSubspace.wSameSide_vadd_right_iff
+-/
+#print AffineSubspace.sSameSide_vadd_left_iff /-
theorem sSameSide_vadd_left_iff {s : AffineSubspace R P} {x y : P} {v : V} (hv : v ∈ s.direction) :
s.SSameSide (v +ᵥ x) y ↔ s.SSameSide x y := by
rw [s_same_side, s_same_side, w_same_side_vadd_left_iff hv, vadd_mem_iff_mem_of_mem_direction hv]
#align affine_subspace.s_same_side_vadd_left_iff AffineSubspace.sSameSide_vadd_left_iff
+-/
+#print AffineSubspace.sSameSide_vadd_right_iff /-
theorem sSameSide_vadd_right_iff {s : AffineSubspace R P} {x y : P} {v : V} (hv : v ∈ s.direction) :
s.SSameSide x (v +ᵥ y) ↔ s.SSameSide x y := by
rw [s_same_side_comm, s_same_side_vadd_left_iff hv, s_same_side_comm]
#align affine_subspace.s_same_side_vadd_right_iff AffineSubspace.sSameSide_vadd_right_iff
+-/
+#print AffineSubspace.wOppSide_vadd_left_iff /-
theorem wOppSide_vadd_left_iff {s : AffineSubspace R P} {x y : P} {v : V} (hv : v ∈ s.direction) :
s.WOppSide (v +ᵥ x) y ↔ s.WOppSide x y :=
by
@@ -331,22 +402,30 @@ theorem wOppSide_vadd_left_iff {s : AffineSubspace R P} {x y : P} {v : V} (hv :
refine' ⟨v +ᵥ p₁, AffineSubspace.vadd_mem_of_mem_direction hv hp₁, p₂, hp₂, _⟩
rwa [vadd_vsub_vadd_cancel_left]
#align affine_subspace.w_opp_side_vadd_left_iff AffineSubspace.wOppSide_vadd_left_iff
+-/
+#print AffineSubspace.wOppSide_vadd_right_iff /-
theorem wOppSide_vadd_right_iff {s : AffineSubspace R P} {x y : P} {v : V} (hv : v ∈ s.direction) :
s.WOppSide x (v +ᵥ y) ↔ s.WOppSide x y := by
rw [w_opp_side_comm, w_opp_side_vadd_left_iff hv, w_opp_side_comm]
#align affine_subspace.w_opp_side_vadd_right_iff AffineSubspace.wOppSide_vadd_right_iff
+-/
+#print AffineSubspace.sOppSide_vadd_left_iff /-
theorem sOppSide_vadd_left_iff {s : AffineSubspace R P} {x y : P} {v : V} (hv : v ∈ s.direction) :
s.SOppSide (v +ᵥ x) y ↔ s.SOppSide x y := by
rw [s_opp_side, s_opp_side, w_opp_side_vadd_left_iff hv, vadd_mem_iff_mem_of_mem_direction hv]
#align affine_subspace.s_opp_side_vadd_left_iff AffineSubspace.sOppSide_vadd_left_iff
+-/
+#print AffineSubspace.sOppSide_vadd_right_iff /-
theorem sOppSide_vadd_right_iff {s : AffineSubspace R P} {x y : P} {v : V} (hv : v ∈ s.direction) :
s.SOppSide x (v +ᵥ y) ↔ s.SOppSide x y := by
rw [s_opp_side_comm, s_opp_side_vadd_left_iff hv, s_opp_side_comm]
#align affine_subspace.s_opp_side_vadd_right_iff AffineSubspace.sOppSide_vadd_right_iff
+-/
+#print AffineSubspace.wSameSide_smul_vsub_vadd_left /-
theorem wSameSide_smul_vsub_vadd_left {s : AffineSubspace R P} {p₁ p₂ : P} (x : P) (hp₁ : p₁ ∈ s)
(hp₂ : p₂ ∈ s) {t : R} (ht : 0 ≤ t) : s.WSameSide (t • (x -ᵥ p₁) +ᵥ p₂) x :=
by
@@ -354,22 +433,30 @@ theorem wSameSide_smul_vsub_vadd_left {s : AffineSubspace R P} {p₁ p₂ : P} (
rw [vadd_vsub]
exact SameRay.sameRay_nonneg_smul_left _ ht
#align affine_subspace.w_same_side_smul_vsub_vadd_left AffineSubspace.wSameSide_smul_vsub_vadd_left
+-/
+#print AffineSubspace.wSameSide_smul_vsub_vadd_right /-
theorem wSameSide_smul_vsub_vadd_right {s : AffineSubspace R P} {p₁ p₂ : P} (x : P) (hp₁ : p₁ ∈ s)
(hp₂ : p₂ ∈ s) {t : R} (ht : 0 ≤ t) : s.WSameSide x (t • (x -ᵥ p₁) +ᵥ p₂) :=
(wSameSide_smul_vsub_vadd_left x hp₁ hp₂ ht).symm
#align affine_subspace.w_same_side_smul_vsub_vadd_right AffineSubspace.wSameSide_smul_vsub_vadd_right
+-/
+#print AffineSubspace.wSameSide_lineMap_left /-
theorem wSameSide_lineMap_left {s : AffineSubspace R P} {x : P} (y : P) (h : x ∈ s) {t : R}
(ht : 0 ≤ t) : s.WSameSide (lineMap x y t) y :=
wSameSide_smul_vsub_vadd_left y h h ht
#align affine_subspace.w_same_side_line_map_left AffineSubspace.wSameSide_lineMap_left
+-/
+#print AffineSubspace.wSameSide_lineMap_right /-
theorem wSameSide_lineMap_right {s : AffineSubspace R P} {x : P} (y : P) (h : x ∈ s) {t : R}
(ht : 0 ≤ t) : s.WSameSide y (lineMap x y t) :=
(wSameSide_lineMap_left y h ht).symm
#align affine_subspace.w_same_side_line_map_right AffineSubspace.wSameSide_lineMap_right
+-/
+#print AffineSubspace.wOppSide_smul_vsub_vadd_left /-
theorem wOppSide_smul_vsub_vadd_left {s : AffineSubspace R P} {p₁ p₂ : P} (x : P) (hp₁ : p₁ ∈ s)
(hp₂ : p₂ ∈ s) {t : R} (ht : t ≤ 0) : s.WOppSide (t • (x -ᵥ p₁) +ᵥ p₂) x :=
by
@@ -377,43 +464,59 @@ theorem wOppSide_smul_vsub_vadd_left {s : AffineSubspace R P} {p₁ p₂ : P} (x
rw [vadd_vsub, ← neg_neg t, neg_smul, ← smul_neg, neg_vsub_eq_vsub_rev]
exact SameRay.sameRay_nonneg_smul_left _ (neg_nonneg.2 ht)
#align affine_subspace.w_opp_side_smul_vsub_vadd_left AffineSubspace.wOppSide_smul_vsub_vadd_left
+-/
+#print AffineSubspace.wOppSide_smul_vsub_vadd_right /-
theorem wOppSide_smul_vsub_vadd_right {s : AffineSubspace R P} {p₁ p₂ : P} (x : P) (hp₁ : p₁ ∈ s)
(hp₂ : p₂ ∈ s) {t : R} (ht : t ≤ 0) : s.WOppSide x (t • (x -ᵥ p₁) +ᵥ p₂) :=
(wOppSide_smul_vsub_vadd_left x hp₁ hp₂ ht).symm
#align affine_subspace.w_opp_side_smul_vsub_vadd_right AffineSubspace.wOppSide_smul_vsub_vadd_right
+-/
+#print AffineSubspace.wOppSide_lineMap_left /-
theorem wOppSide_lineMap_left {s : AffineSubspace R P} {x : P} (y : P) (h : x ∈ s) {t : R}
(ht : t ≤ 0) : s.WOppSide (lineMap x y t) y :=
wOppSide_smul_vsub_vadd_left y h h ht
#align affine_subspace.w_opp_side_line_map_left AffineSubspace.wOppSide_lineMap_left
+-/
+#print AffineSubspace.wOppSide_lineMap_right /-
theorem wOppSide_lineMap_right {s : AffineSubspace R P} {x : P} (y : P) (h : x ∈ s) {t : R}
(ht : t ≤ 0) : s.WOppSide y (lineMap x y t) :=
(wOppSide_lineMap_left y h ht).symm
#align affine_subspace.w_opp_side_line_map_right AffineSubspace.wOppSide_lineMap_right
+-/
+#print Wbtw.wSameSide₂₃ /-
theorem Wbtw.wSameSide₂₃ {s : AffineSubspace R P} {x y z : P} (h : Wbtw R x y z) (hx : x ∈ s) :
s.WSameSide y z := by
rcases h with ⟨t, ⟨ht0, -⟩, rfl⟩
exact w_same_side_line_map_left z hx ht0
#align wbtw.w_same_side₂₃ Wbtw.wSameSide₂₃
+-/
+#print Wbtw.wSameSide₃₂ /-
theorem Wbtw.wSameSide₃₂ {s : AffineSubspace R P} {x y z : P} (h : Wbtw R x y z) (hx : x ∈ s) :
s.WSameSide z y :=
(h.wSameSide₂₃ hx).symm
#align wbtw.w_same_side₃₂ Wbtw.wSameSide₃₂
+-/
+#print Wbtw.wSameSide₁₂ /-
theorem Wbtw.wSameSide₁₂ {s : AffineSubspace R P} {x y z : P} (h : Wbtw R x y z) (hz : z ∈ s) :
s.WSameSide x y :=
h.symm.wSameSide₃₂ hz
#align wbtw.w_same_side₁₂ Wbtw.wSameSide₁₂
+-/
+#print Wbtw.wSameSide₂₁ /-
theorem Wbtw.wSameSide₂₁ {s : AffineSubspace R P} {x y z : P} (h : Wbtw R x y z) (hz : z ∈ s) :
s.WSameSide y x :=
h.symm.wSameSide₂₃ hz
#align wbtw.w_same_side₂₁ Wbtw.wSameSide₂₁
+-/
+#print Wbtw.wOppSide₁₃ /-
theorem Wbtw.wOppSide₁₃ {s : AffineSubspace R P} {x y z : P} (h : Wbtw R x y z) (hy : y ∈ s) :
s.WOppSide x z := by
rcases h with ⟨t, ⟨ht0, ht1⟩, rfl⟩
@@ -425,11 +528,14 @@ theorem Wbtw.wOppSide₁₃ {s : AffineSubspace R P} {x y z : P} (h : Wbtw R x y
vsub_self, zero_sub, ← neg_one_smul R (z -ᵥ x), ← add_smul, smul_neg, ← neg_smul, smul_smul]
ring_nf
#align wbtw.w_opp_side₁₃ Wbtw.wOppSide₁₃
+-/
+#print Wbtw.wOppSide₃₁ /-
theorem Wbtw.wOppSide₃₁ {s : AffineSubspace R P} {x y z : P} (h : Wbtw R x y z) (hy : y ∈ s) :
s.WOppSide z x :=
h.symm.wOppSide₁₃ hy
#align wbtw.w_opp_side₃₁ Wbtw.wOppSide₃₁
+-/
end StrictOrderedCommRing
@@ -439,10 +545,9 @@ variable [LinearOrderedField R] [AddCommGroup V] [Module R V] [AddTorsor V P]
variable [AddCommGroup V'] [Module R V'] [AddTorsor V' P']
-include V
-
variable {R}
+#print AffineSubspace.wOppSide_self_iff /-
@[simp]
theorem wOppSide_self_iff {s : AffineSubspace R P} {x : P} : s.WOppSide x x ↔ x ∈ s :=
by
@@ -454,10 +559,14 @@ theorem wOppSide_self_iff {s : AffineSubspace R P} {x : P} : s.WOppSide x x ↔
exact s.smul_vsub_vadd_mem a hp₂ hp₁ hp₁
· exact fun h => ⟨x, h, x, h, SameRay.rfl⟩
#align affine_subspace.w_opp_side_self_iff AffineSubspace.wOppSide_self_iff
+-/
+#print AffineSubspace.not_sOppSide_self /-
theorem not_sOppSide_self (s : AffineSubspace R P) (x : P) : ¬s.SOppSide x x := by simp [s_opp_side]
#align affine_subspace.not_s_opp_side_self AffineSubspace.not_sOppSide_self
+-/
+#print AffineSubspace.wSameSide_iff_exists_left /-
theorem wSameSide_iff_exists_left {s : AffineSubspace R P} {x y p₁ : P} (h : p₁ ∈ s) :
s.WSameSide x y ↔ x ∈ s ∨ ∃ p₂ ∈ s, SameRay R (x -ᵥ p₁) (y -ᵥ p₂) :=
by
@@ -479,14 +588,18 @@ theorem wSameSide_iff_exists_left {s : AffineSubspace R P} {x y p₁ : P} (h : p
· exact w_same_side_of_left_mem y h'
· exact ⟨p₁, h, h'⟩
#align affine_subspace.w_same_side_iff_exists_left AffineSubspace.wSameSide_iff_exists_left
+-/
+#print AffineSubspace.wSameSide_iff_exists_right /-
theorem wSameSide_iff_exists_right {s : AffineSubspace R P} {x y p₂ : P} (h : p₂ ∈ s) :
s.WSameSide x y ↔ y ∈ s ∨ ∃ p₁ ∈ s, SameRay R (x -ᵥ p₁) (y -ᵥ p₂) :=
by
rw [w_same_side_comm, w_same_side_iff_exists_left h]
simp_rw [SameRay.sameRay_comm]
#align affine_subspace.w_same_side_iff_exists_right AffineSubspace.wSameSide_iff_exists_right
+-/
+#print AffineSubspace.sSameSide_iff_exists_left /-
theorem sSameSide_iff_exists_left {s : AffineSubspace R P} {x y p₁ : P} (h : p₁ ∈ s) :
s.SSameSide x y ↔ x ∉ s ∧ y ∉ s ∧ ∃ p₂ ∈ s, SameRay R (x -ᵥ p₁) (y -ᵥ p₂) :=
by
@@ -494,14 +607,18 @@ theorem sSameSide_iff_exists_left {s : AffineSubspace R P} {x y p₁ : P} (h : p
intro hx
rw [or_iff_right hx]
#align affine_subspace.s_same_side_iff_exists_left AffineSubspace.sSameSide_iff_exists_left
+-/
+#print AffineSubspace.sSameSide_iff_exists_right /-
theorem sSameSide_iff_exists_right {s : AffineSubspace R P} {x y p₂ : P} (h : p₂ ∈ s) :
s.SSameSide x y ↔ x ∉ s ∧ y ∉ s ∧ ∃ p₁ ∈ s, SameRay R (x -ᵥ p₁) (y -ᵥ p₂) :=
by
rw [s_same_side_comm, s_same_side_iff_exists_left h, ← and_assoc', and_comm' (y ∉ s), and_assoc']
simp_rw [SameRay.sameRay_comm]
#align affine_subspace.s_same_side_iff_exists_right AffineSubspace.sSameSide_iff_exists_right
+-/
+#print AffineSubspace.wOppSide_iff_exists_left /-
theorem wOppSide_iff_exists_left {s : AffineSubspace R P} {x y p₁ : P} (h : p₁ ∈ s) :
s.WOppSide x y ↔ x ∈ s ∨ ∃ p₂ ∈ s, SameRay R (x -ᵥ p₁) (p₂ -ᵥ y) :=
by
@@ -524,7 +641,9 @@ theorem wOppSide_iff_exists_left {s : AffineSubspace R P} {x y p₁ : P} (h : p
· exact w_opp_side_of_left_mem y h'
· exact ⟨p₁, h, h'⟩
#align affine_subspace.w_opp_side_iff_exists_left AffineSubspace.wOppSide_iff_exists_left
+-/
+#print AffineSubspace.wOppSide_iff_exists_right /-
theorem wOppSide_iff_exists_right {s : AffineSubspace R P} {x y p₂ : P} (h : p₂ ∈ s) :
s.WOppSide x y ↔ y ∈ s ∨ ∃ p₁ ∈ s, SameRay R (x -ᵥ p₁) (p₂ -ᵥ y) :=
by
@@ -537,7 +656,9 @@ theorem wOppSide_iff_exists_right {s : AffineSubspace R P} {x y p₂ : P} (h : p
refine' Or.inr ⟨p, hp, _⟩
rwa [SameRay.sameRay_comm, ← sameRay_neg_iff, neg_vsub_eq_vsub_rev, neg_vsub_eq_vsub_rev]
#align affine_subspace.w_opp_side_iff_exists_right AffineSubspace.wOppSide_iff_exists_right
+-/
+#print AffineSubspace.sOppSide_iff_exists_left /-
theorem sOppSide_iff_exists_left {s : AffineSubspace R P} {x y p₁ : P} (h : p₁ ∈ s) :
s.SOppSide x y ↔ x ∉ s ∧ y ∉ s ∧ ∃ p₂ ∈ s, SameRay R (x -ᵥ p₁) (p₂ -ᵥ y) :=
by
@@ -545,7 +666,9 @@ theorem sOppSide_iff_exists_left {s : AffineSubspace R P} {x y p₁ : P} (h : p
intro hx
rw [or_iff_right hx]
#align affine_subspace.s_opp_side_iff_exists_left AffineSubspace.sOppSide_iff_exists_left
+-/
+#print AffineSubspace.sOppSide_iff_exists_right /-
theorem sOppSide_iff_exists_right {s : AffineSubspace R P} {x y p₂ : P} (h : p₂ ∈ s) :
s.SOppSide x y ↔ x ∉ s ∧ y ∉ s ∧ ∃ p₁ ∈ s, SameRay R (x -ᵥ p₁) (p₂ -ᵥ y) :=
by
@@ -554,7 +677,9 @@ theorem sOppSide_iff_exists_right {s : AffineSubspace R P} {x y p₂ : P} (h : p
rintro hx hy
rw [or_iff_right hy]
#align affine_subspace.s_opp_side_iff_exists_right AffineSubspace.sOppSide_iff_exists_right
+-/
+#print AffineSubspace.WSameSide.trans /-
theorem WSameSide.trans {s : AffineSubspace R P} {x y z : P} (hxy : s.WSameSide x y)
(hyz : s.WSameSide y z) (hy : y ∉ s) : s.WSameSide x z :=
by
@@ -566,12 +691,16 @@ theorem WSameSide.trans {s : AffineSubspace R P} {x y z : P} (hxy : s.WSameSide
rw [vsub_eq_zero_iff_eq] at h
exact hy (h.symm ▸ hp₂)
#align affine_subspace.w_same_side.trans AffineSubspace.WSameSide.trans
+-/
+#print AffineSubspace.WSameSide.trans_sSameSide /-
theorem WSameSide.trans_sSameSide {s : AffineSubspace R P} {x y z : P} (hxy : s.WSameSide x y)
(hyz : s.SSameSide y z) : s.WSameSide x z :=
hxy.trans hyz.1 hyz.2.1
#align affine_subspace.w_same_side.trans_s_same_side AffineSubspace.WSameSide.trans_sSameSide
+-/
+#print AffineSubspace.WSameSide.trans_wOppSide /-
theorem WSameSide.trans_wOppSide {s : AffineSubspace R P} {x y z : P} (hxy : s.WSameSide x y)
(hyz : s.WOppSide y z) (hy : y ∉ s) : s.WOppSide x z :=
by
@@ -583,42 +712,58 @@ theorem WSameSide.trans_wOppSide {s : AffineSubspace R P} {x y z : P} (hxy : s.W
rw [vsub_eq_zero_iff_eq] at h
exact hy (h.symm ▸ hp₂)
#align affine_subspace.w_same_side.trans_w_opp_side AffineSubspace.WSameSide.trans_wOppSide
+-/
+#print AffineSubspace.WSameSide.trans_sOppSide /-
theorem WSameSide.trans_sOppSide {s : AffineSubspace R P} {x y z : P} (hxy : s.WSameSide x y)
(hyz : s.SOppSide y z) : s.WOppSide x z :=
hxy.trans_wOppSide hyz.1 hyz.2.1
#align affine_subspace.w_same_side.trans_s_opp_side AffineSubspace.WSameSide.trans_sOppSide
+-/
+#print AffineSubspace.SSameSide.trans_wSameSide /-
theorem SSameSide.trans_wSameSide {s : AffineSubspace R P} {x y z : P} (hxy : s.SSameSide x y)
(hyz : s.WSameSide y z) : s.WSameSide x z :=
(hyz.symm.trans_sSameSide hxy.symm).symm
#align affine_subspace.s_same_side.trans_w_same_side AffineSubspace.SSameSide.trans_wSameSide
+-/
+#print AffineSubspace.SSameSide.trans /-
theorem SSameSide.trans {s : AffineSubspace R P} {x y z : P} (hxy : s.SSameSide x y)
(hyz : s.SSameSide y z) : s.SSameSide x z :=
⟨hxy.WSameSide.trans_sSameSide hyz, hxy.2.1, hyz.2.2⟩
#align affine_subspace.s_same_side.trans AffineSubspace.SSameSide.trans
+-/
+#print AffineSubspace.SSameSide.trans_wOppSide /-
theorem SSameSide.trans_wOppSide {s : AffineSubspace R P} {x y z : P} (hxy : s.SSameSide x y)
(hyz : s.WOppSide y z) : s.WOppSide x z :=
hxy.WSameSide.trans_wOppSide hyz hxy.2.2
#align affine_subspace.s_same_side.trans_w_opp_side AffineSubspace.SSameSide.trans_wOppSide
+-/
+#print AffineSubspace.SSameSide.trans_sOppSide /-
theorem SSameSide.trans_sOppSide {s : AffineSubspace R P} {x y z : P} (hxy : s.SSameSide x y)
(hyz : s.SOppSide y z) : s.SOppSide x z :=
⟨hxy.trans_wOppSide hyz.1, hxy.2.1, hyz.2.2⟩
#align affine_subspace.s_same_side.trans_s_opp_side AffineSubspace.SSameSide.trans_sOppSide
+-/
+#print AffineSubspace.WOppSide.trans_wSameSide /-
theorem WOppSide.trans_wSameSide {s : AffineSubspace R P} {x y z : P} (hxy : s.WOppSide x y)
(hyz : s.WSameSide y z) (hy : y ∉ s) : s.WOppSide x z :=
(hyz.symm.trans_wOppSide hxy.symm hy).symm
#align affine_subspace.w_opp_side.trans_w_same_side AffineSubspace.WOppSide.trans_wSameSide
+-/
+#print AffineSubspace.WOppSide.trans_sSameSide /-
theorem WOppSide.trans_sSameSide {s : AffineSubspace R P} {x y z : P} (hxy : s.WOppSide x y)
(hyz : s.SSameSide y z) : s.WOppSide x z :=
hxy.trans_wSameSide hyz.1 hyz.2.1
#align affine_subspace.w_opp_side.trans_s_same_side AffineSubspace.WOppSide.trans_sSameSide
+-/
+#print AffineSubspace.WOppSide.trans /-
theorem WOppSide.trans {s : AffineSubspace R P} {x y z : P} (hxy : s.WOppSide x y)
(hyz : s.WOppSide y z) (hy : y ∉ s) : s.WSameSide x z :=
by
@@ -631,32 +776,44 @@ theorem WOppSide.trans {s : AffineSubspace R P} {x y z : P} (hxy : s.WOppSide x
rw [vsub_eq_zero_iff_eq] at h
exact hy (h ▸ hp₂)
#align affine_subspace.w_opp_side.trans AffineSubspace.WOppSide.trans
+-/
+#print AffineSubspace.WOppSide.trans_sOppSide /-
theorem WOppSide.trans_sOppSide {s : AffineSubspace R P} {x y z : P} (hxy : s.WOppSide x y)
(hyz : s.SOppSide y z) : s.WSameSide x z :=
hxy.trans hyz.1 hyz.2.1
#align affine_subspace.w_opp_side.trans_s_opp_side AffineSubspace.WOppSide.trans_sOppSide
+-/
+#print AffineSubspace.SOppSide.trans_wSameSide /-
theorem SOppSide.trans_wSameSide {s : AffineSubspace R P} {x y z : P} (hxy : s.SOppSide x y)
(hyz : s.WSameSide y z) : s.WOppSide x z :=
(hyz.symm.trans_sOppSide hxy.symm).symm
#align affine_subspace.s_opp_side.trans_w_same_side AffineSubspace.SOppSide.trans_wSameSide
+-/
+#print AffineSubspace.SOppSide.trans_sSameSide /-
theorem SOppSide.trans_sSameSide {s : AffineSubspace R P} {x y z : P} (hxy : s.SOppSide x y)
(hyz : s.SSameSide y z) : s.SOppSide x z :=
(hyz.symm.trans_sOppSide hxy.symm).symm
#align affine_subspace.s_opp_side.trans_s_same_side AffineSubspace.SOppSide.trans_sSameSide
+-/
+#print AffineSubspace.SOppSide.trans_wOppSide /-
theorem SOppSide.trans_wOppSide {s : AffineSubspace R P} {x y z : P} (hxy : s.SOppSide x y)
(hyz : s.WOppSide y z) : s.WSameSide x z :=
(hyz.symm.trans_sOppSide hxy.symm).symm
#align affine_subspace.s_opp_side.trans_w_opp_side AffineSubspace.SOppSide.trans_wOppSide
+-/
+#print AffineSubspace.SOppSide.trans /-
theorem SOppSide.trans {s : AffineSubspace R P} {x y z : P} (hxy : s.SOppSide x y)
(hyz : s.SOppSide y z) : s.SSameSide x z :=
⟨hxy.trans_wOppSide hyz.1, hxy.2.1, hyz.2.2⟩
#align affine_subspace.s_opp_side.trans AffineSubspace.SOppSide.trans
+-/
+#print AffineSubspace.wSameSide_and_wOppSide_iff /-
theorem wSameSide_and_wOppSide_iff {s : AffineSubspace R P} {x y : P} :
s.WSameSide x y ∧ s.WOppSide x y ↔ x ∈ s ∨ y ∈ s :=
by
@@ -670,7 +827,9 @@ theorem wSameSide_and_wOppSide_iff {s : AffineSubspace R P} {x y : P} :
· exact ⟨w_same_side_of_left_mem y h, w_opp_side_of_left_mem y h⟩
· exact ⟨w_same_side_of_right_mem x h, w_opp_side_of_right_mem x h⟩
#align affine_subspace.w_same_side_and_w_opp_side_iff AffineSubspace.wSameSide_and_wOppSide_iff
+-/
+#print AffineSubspace.WSameSide.not_sOppSide /-
theorem WSameSide.not_sOppSide {s : AffineSubspace R P} {x y : P} (h : s.WSameSide x y) :
¬s.SOppSide x y := by
intro ho
@@ -679,7 +838,9 @@ theorem WSameSide.not_sOppSide {s : AffineSubspace R P} {x y : P} (h : s.WSameSi
· exact ho.2.1 hx
· exact ho.2.2 hy
#align affine_subspace.w_same_side.not_s_opp_side AffineSubspace.WSameSide.not_sOppSide
+-/
+#print AffineSubspace.SSameSide.not_wOppSide /-
theorem SSameSide.not_wOppSide {s : AffineSubspace R P} {x y : P} (h : s.SSameSide x y) :
¬s.WOppSide x y := by
intro ho
@@ -688,23 +849,33 @@ theorem SSameSide.not_wOppSide {s : AffineSubspace R P} {x y : P} (h : s.SSameSi
· exact h.2.1 hx
· exact h.2.2 hy
#align affine_subspace.s_same_side.not_w_opp_side AffineSubspace.SSameSide.not_wOppSide
+-/
+#print AffineSubspace.SSameSide.not_sOppSide /-
theorem SSameSide.not_sOppSide {s : AffineSubspace R P} {x y : P} (h : s.SSameSide x y) :
¬s.SOppSide x y := fun ho => h.not_wOppSide ho.1
#align affine_subspace.s_same_side.not_s_opp_side AffineSubspace.SSameSide.not_sOppSide
+-/
+#print AffineSubspace.WOppSide.not_sSameSide /-
theorem WOppSide.not_sSameSide {s : AffineSubspace R P} {x y : P} (h : s.WOppSide x y) :
¬s.SSameSide x y := fun hs => hs.not_wOppSide h
#align affine_subspace.w_opp_side.not_s_same_side AffineSubspace.WOppSide.not_sSameSide
+-/
+#print AffineSubspace.SOppSide.not_wSameSide /-
theorem SOppSide.not_wSameSide {s : AffineSubspace R P} {x y : P} (h : s.SOppSide x y) :
¬s.WSameSide x y := fun hs => hs.not_sOppSide h
#align affine_subspace.s_opp_side.not_w_same_side AffineSubspace.SOppSide.not_wSameSide
+-/
+#print AffineSubspace.SOppSide.not_sSameSide /-
theorem SOppSide.not_sSameSide {s : AffineSubspace R P} {x y : P} (h : s.SOppSide x y) :
¬s.SSameSide x y := fun hs => h.not_wSameSide hs.1
#align affine_subspace.s_opp_side.not_s_same_side AffineSubspace.SOppSide.not_sSameSide
+-/
+#print AffineSubspace.wOppSide_iff_exists_wbtw /-
theorem wOppSide_iff_exists_wbtw {s : AffineSubspace R P} {x y : P} :
s.WOppSide x y ↔ ∃ p ∈ s, Wbtw R x p y :=
by
@@ -730,7 +901,9 @@ theorem wOppSide_iff_exists_wbtw {s : AffineSubspace R P} {x y : P} :
⟨div_nonneg hr₂.le (Left.add_pos hr₁ hr₂).le,
div_le_one_of_le (le_add_of_nonneg_left hr₁.le) (Left.add_pos hr₁ hr₂).le⟩
#align affine_subspace.w_opp_side_iff_exists_wbtw AffineSubspace.wOppSide_iff_exists_wbtw
+-/
+#print AffineSubspace.SOppSide.exists_sbtw /-
theorem SOppSide.exists_sbtw {s : AffineSubspace R P} {x y : P} (h : s.SOppSide x y) :
∃ p ∈ s, Sbtw R x p y :=
by
@@ -741,7 +914,9 @@ theorem SOppSide.exists_sbtw {s : AffineSubspace R P} {x y : P} (h : s.SOppSide
· rintro rfl
exact h.2.2 hp
#align affine_subspace.s_opp_side.exists_sbtw AffineSubspace.SOppSide.exists_sbtw
+-/
+#print Sbtw.sOppSide_of_not_mem_of_mem /-
theorem Sbtw.sOppSide_of_not_mem_of_mem {s : AffineSubspace R P} {x y z : P} (h : Sbtw R x y z)
(hx : x ∉ s) (hy : y ∈ s) : s.SOppSide x z :=
by
@@ -754,7 +929,9 @@ theorem Sbtw.sOppSide_of_not_mem_of_mem {s : AffineSubspace R P} {x y z : P} (h
sub_eq_add_neg, s.direction.smul_mem_iff (sub_ne_zero_of_ne ht)] at hy'
rwa [vadd_mem_iff_mem_of_mem_direction (Submodule.smul_mem _ _ hy')] at hy
#align sbtw.s_opp_side_of_not_mem_of_mem Sbtw.sOppSide_of_not_mem_of_mem
+-/
+#print AffineSubspace.sSameSide_smul_vsub_vadd_left /-
theorem sSameSide_smul_vsub_vadd_left {s : AffineSubspace R P} {x p₁ p₂ : P} (hx : x ∉ s)
(hp₁ : p₁ ∈ s) (hp₂ : p₂ ∈ s) {t : R} (ht : 0 < t) : s.SSameSide (t • (x -ᵥ p₁) +ᵥ p₂) x :=
by
@@ -762,22 +939,30 @@ theorem sSameSide_smul_vsub_vadd_left {s : AffineSubspace R P} {x p₁ p₂ : P}
rwa [vadd_mem_iff_mem_direction _ hp₂, s.direction.smul_mem_iff ht.ne.symm,
vsub_right_mem_direction_iff_mem hp₁] at h
#align affine_subspace.s_same_side_smul_vsub_vadd_left AffineSubspace.sSameSide_smul_vsub_vadd_left
+-/
+#print AffineSubspace.sSameSide_smul_vsub_vadd_right /-
theorem sSameSide_smul_vsub_vadd_right {s : AffineSubspace R P} {x p₁ p₂ : P} (hx : x ∉ s)
(hp₁ : p₁ ∈ s) (hp₂ : p₂ ∈ s) {t : R} (ht : 0 < t) : s.SSameSide x (t • (x -ᵥ p₁) +ᵥ p₂) :=
(sSameSide_smul_vsub_vadd_left hx hp₁ hp₂ ht).symm
#align affine_subspace.s_same_side_smul_vsub_vadd_right AffineSubspace.sSameSide_smul_vsub_vadd_right
+-/
+#print AffineSubspace.sSameSide_lineMap_left /-
theorem sSameSide_lineMap_left {s : AffineSubspace R P} {x y : P} (hx : x ∈ s) (hy : y ∉ s) {t : R}
(ht : 0 < t) : s.SSameSide (lineMap x y t) y :=
sSameSide_smul_vsub_vadd_left hy hx hx ht
#align affine_subspace.s_same_side_line_map_left AffineSubspace.sSameSide_lineMap_left
+-/
+#print AffineSubspace.sSameSide_lineMap_right /-
theorem sSameSide_lineMap_right {s : AffineSubspace R P} {x y : P} (hx : x ∈ s) (hy : y ∉ s) {t : R}
(ht : 0 < t) : s.SSameSide y (lineMap x y t) :=
(sSameSide_lineMap_left hx hy ht).symm
#align affine_subspace.s_same_side_line_map_right AffineSubspace.sSameSide_lineMap_right
+-/
+#print AffineSubspace.sOppSide_smul_vsub_vadd_left /-
theorem sOppSide_smul_vsub_vadd_left {s : AffineSubspace R P} {x p₁ p₂ : P} (hx : x ∉ s)
(hp₁ : p₁ ∈ s) (hp₂ : p₂ ∈ s) {t : R} (ht : t < 0) : s.SOppSide (t • (x -ᵥ p₁) +ᵥ p₂) x :=
by
@@ -785,22 +970,30 @@ theorem sOppSide_smul_vsub_vadd_left {s : AffineSubspace R P} {x p₁ p₂ : P}
rwa [vadd_mem_iff_mem_direction _ hp₂, s.direction.smul_mem_iff ht.ne,
vsub_right_mem_direction_iff_mem hp₁] at h
#align affine_subspace.s_opp_side_smul_vsub_vadd_left AffineSubspace.sOppSide_smul_vsub_vadd_left
+-/
+#print AffineSubspace.sOppSide_smul_vsub_vadd_right /-
theorem sOppSide_smul_vsub_vadd_right {s : AffineSubspace R P} {x p₁ p₂ : P} (hx : x ∉ s)
(hp₁ : p₁ ∈ s) (hp₂ : p₂ ∈ s) {t : R} (ht : t < 0) : s.SOppSide x (t • (x -ᵥ p₁) +ᵥ p₂) :=
(sOppSide_smul_vsub_vadd_left hx hp₁ hp₂ ht).symm
#align affine_subspace.s_opp_side_smul_vsub_vadd_right AffineSubspace.sOppSide_smul_vsub_vadd_right
+-/
+#print AffineSubspace.sOppSide_lineMap_left /-
theorem sOppSide_lineMap_left {s : AffineSubspace R P} {x y : P} (hx : x ∈ s) (hy : y ∉ s) {t : R}
(ht : t < 0) : s.SOppSide (lineMap x y t) y :=
sOppSide_smul_vsub_vadd_left hy hx hx ht
#align affine_subspace.s_opp_side_line_map_left AffineSubspace.sOppSide_lineMap_left
+-/
+#print AffineSubspace.sOppSide_lineMap_right /-
theorem sOppSide_lineMap_right {s : AffineSubspace R P} {x y : P} (hx : x ∈ s) (hy : y ∉ s) {t : R}
(ht : t < 0) : s.SOppSide y (lineMap x y t) :=
(sOppSide_lineMap_left hx hy ht).symm
#align affine_subspace.s_opp_side_line_map_right AffineSubspace.sOppSide_lineMap_right
+-/
+#print AffineSubspace.setOf_wSameSide_eq_image2 /-
theorem setOf_wSameSide_eq_image2 {s : AffineSubspace R P} {x p : P} (hx : x ∉ s) (hp : p ∈ s) :
{y | s.WSameSide x y} = Set.image2 (fun (t : R) q => t • (x -ᵥ p) +ᵥ q) (Set.Ici 0) s :=
by
@@ -820,7 +1013,9 @@ theorem setOf_wSameSide_eq_image2 {s : AffineSubspace R P} {x p : P} (hx : x ∉
· rintro ⟨t, p', ht, hp', rfl⟩
exact w_same_side_smul_vsub_vadd_right x hp hp' ht
#align affine_subspace.set_of_w_same_side_eq_image2 AffineSubspace.setOf_wSameSide_eq_image2
+-/
+#print AffineSubspace.setOf_sSameSide_eq_image2 /-
theorem setOf_sSameSide_eq_image2 {s : AffineSubspace R P} {x p : P} (hx : x ∉ s) (hp : p ∈ s) :
{y | s.SSameSide x y} = Set.image2 (fun (t : R) q => t • (x -ᵥ p) +ᵥ q) (Set.Ioi 0) s :=
by
@@ -839,7 +1034,9 @@ theorem setOf_sSameSide_eq_image2 {s : AffineSubspace R P} {x p : P} (hx : x ∉
· rintro ⟨t, p', ht, hp', rfl⟩
exact s_same_side_smul_vsub_vadd_right hx hp hp' ht
#align affine_subspace.set_of_s_same_side_eq_image2 AffineSubspace.setOf_sSameSide_eq_image2
+-/
+#print AffineSubspace.setOf_wOppSide_eq_image2 /-
theorem setOf_wOppSide_eq_image2 {s : AffineSubspace R P} {x p : P} (hx : x ∉ s) (hp : p ∈ s) :
{y | s.WOppSide x y} = Set.image2 (fun (t : R) q => t • (x -ᵥ p) +ᵥ q) (Set.Iic 0) s :=
by
@@ -859,7 +1056,9 @@ theorem setOf_wOppSide_eq_image2 {s : AffineSubspace R P} {x p : P} (hx : x ∉
· rintro ⟨t, p', ht, hp', rfl⟩
exact w_opp_side_smul_vsub_vadd_right x hp hp' ht
#align affine_subspace.set_of_w_opp_side_eq_image2 AffineSubspace.setOf_wOppSide_eq_image2
+-/
+#print AffineSubspace.setOf_sOppSide_eq_image2 /-
theorem setOf_sOppSide_eq_image2 {s : AffineSubspace R P} {x p : P} (hx : x ∉ s) (hp : p ∈ s) :
{y | s.SOppSide x y} = Set.image2 (fun (t : R) q => t • (x -ᵥ p) +ᵥ q) (Set.Iio 0) s :=
by
@@ -878,18 +1077,23 @@ theorem setOf_sOppSide_eq_image2 {s : AffineSubspace R P} {x p : P} (hx : x ∉
· rintro ⟨t, p', ht, hp', rfl⟩
exact s_opp_side_smul_vsub_vadd_right hx hp hp' ht
#align affine_subspace.set_of_s_opp_side_eq_image2 AffineSubspace.setOf_sOppSide_eq_image2
+-/
+#print AffineSubspace.wOppSide_pointReflection /-
theorem wOppSide_pointReflection {s : AffineSubspace R P} {x : P} (y : P) (hx : x ∈ s) :
s.WOppSide y (pointReflection R x y) :=
(wbtw_pointReflection R _ _).wOppSide₁₃ hx
#align affine_subspace.w_opp_side_point_reflection AffineSubspace.wOppSide_pointReflection
+-/
+#print AffineSubspace.sOppSide_pointReflection /-
theorem sOppSide_pointReflection {s : AffineSubspace R P} {x y : P} (hx : x ∈ s) (hy : y ∉ s) :
s.SOppSide y (pointReflection R x y) :=
by
refine' (sbtw_pointReflection_of_ne R fun h => hy _).sOppSide_of_not_mem_of_mem hy hx
rwa [← h]
#align affine_subspace.s_opp_side_point_reflection AffineSubspace.sOppSide_pointReflection
+-/
end LinearOrderedField
@@ -899,8 +1103,7 @@ variable [SeminormedAddCommGroup V] [NormedSpace ℝ V] [PseudoMetricSpace P]
variable [NormedAddTorsor V P]
-include V
-
+#print AffineSubspace.isConnected_setOf_wSameSide /-
theorem isConnected_setOf_wSameSide {s : AffineSubspace ℝ P} (x : P) (h : (s : Set P).Nonempty) :
IsConnected {y | s.WSameSide x y} :=
by
@@ -916,7 +1119,9 @@ theorem isConnected_setOf_wSameSide {s : AffineSubspace ℝ P} (x : P) (h : (s :
((continuous_fst.smul continuous_const).vadd continuous_snd).ContinuousOn
convert AddTorsor.connectedSpace s.direction s
#align affine_subspace.is_connected_set_of_w_same_side AffineSubspace.isConnected_setOf_wSameSide
+-/
+#print AffineSubspace.isPreconnected_setOf_wSameSide /-
theorem isPreconnected_setOf_wSameSide (s : AffineSubspace ℝ P) (x : P) :
IsPreconnected {y | s.WSameSide x y} :=
by
@@ -927,7 +1132,9 @@ theorem isPreconnected_setOf_wSameSide (s : AffineSubspace ℝ P) (x : P) :
rfl
· exact (is_connected_set_of_w_same_side x h).IsPreconnected
#align affine_subspace.is_preconnected_set_of_w_same_side AffineSubspace.isPreconnected_setOf_wSameSide
+-/
+#print AffineSubspace.isConnected_setOf_sSameSide /-
theorem isConnected_setOf_sSameSide {s : AffineSubspace ℝ P} {x : P} (hx : x ∉ s)
(h : (s : Set P).Nonempty) : IsConnected {y | s.SSameSide x y} :=
by
@@ -939,7 +1146,9 @@ theorem isConnected_setOf_sSameSide {s : AffineSubspace ℝ P} {x : P} (hx : x
((continuous_fst.smul continuous_const).vadd continuous_snd).ContinuousOn
convert AddTorsor.connectedSpace s.direction s
#align affine_subspace.is_connected_set_of_s_same_side AffineSubspace.isConnected_setOf_sSameSide
+-/
+#print AffineSubspace.isPreconnected_setOf_sSameSide /-
theorem isPreconnected_setOf_sSameSide (s : AffineSubspace ℝ P) (x : P) :
IsPreconnected {y | s.SSameSide x y} :=
by
@@ -954,7 +1163,9 @@ theorem isPreconnected_setOf_sSameSide (s : AffineSubspace ℝ P) (x : P) :
rfl
· exact (is_connected_set_of_s_same_side hx h).IsPreconnected
#align affine_subspace.is_preconnected_set_of_s_same_side AffineSubspace.isPreconnected_setOf_sSameSide
+-/
+#print AffineSubspace.isConnected_setOf_wOppSide /-
theorem isConnected_setOf_wOppSide {s : AffineSubspace ℝ P} (x : P) (h : (s : Set P).Nonempty) :
IsConnected {y | s.WOppSide x y} := by
obtain ⟨p, hp⟩ := h
@@ -969,7 +1180,9 @@ theorem isConnected_setOf_wOppSide {s : AffineSubspace ℝ P} (x : P) (h : (s :
((continuous_fst.smul continuous_const).vadd continuous_snd).ContinuousOn
convert AddTorsor.connectedSpace s.direction s
#align affine_subspace.is_connected_set_of_w_opp_side AffineSubspace.isConnected_setOf_wOppSide
+-/
+#print AffineSubspace.isPreconnected_setOf_wOppSide /-
theorem isPreconnected_setOf_wOppSide (s : AffineSubspace ℝ P) (x : P) :
IsPreconnected {y | s.WOppSide x y} :=
by
@@ -980,7 +1193,9 @@ theorem isPreconnected_setOf_wOppSide (s : AffineSubspace ℝ P) (x : P) :
rfl
· exact (is_connected_set_of_w_opp_side x h).IsPreconnected
#align affine_subspace.is_preconnected_set_of_w_opp_side AffineSubspace.isPreconnected_setOf_wOppSide
+-/
+#print AffineSubspace.isConnected_setOf_sOppSide /-
theorem isConnected_setOf_sOppSide {s : AffineSubspace ℝ P} {x : P} (hx : x ∉ s)
(h : (s : Set P).Nonempty) : IsConnected {y | s.SOppSide x y} :=
by
@@ -992,7 +1207,9 @@ theorem isConnected_setOf_sOppSide {s : AffineSubspace ℝ P} {x : P} (hx : x
((continuous_fst.smul continuous_const).vadd continuous_snd).ContinuousOn
convert AddTorsor.connectedSpace s.direction s
#align affine_subspace.is_connected_set_of_s_opp_side AffineSubspace.isConnected_setOf_sOppSide
+-/
+#print AffineSubspace.isPreconnected_setOf_sOppSide /-
theorem isPreconnected_setOf_sOppSide (s : AffineSubspace ℝ P) (x : P) :
IsPreconnected {y | s.SOppSide x y} :=
by
@@ -1007,6 +1224,7 @@ theorem isPreconnected_setOf_sOppSide (s : AffineSubspace ℝ P) (x : P) :
rfl
· exact (is_connected_set_of_s_opp_side hx h).IsPreconnected
#align affine_subspace.is_preconnected_set_of_s_opp_side AffineSubspace.isPreconnected_setOf_sOppSide
+-/
end Normed
mathlib commit https://github.com/leanprover-community/mathlib/commit/31c24aa72e7b3e5ed97a8412470e904f82b81004
@@ -48,7 +48,7 @@ variable [AddCommGroup V'] [Module R V'] [AddTorsor V' P']
include V
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (p₁ p₂ «expr ∈ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (p₁ p₂ «expr ∈ » s) -/
#print AffineSubspace.WSameSide /-
/-- The points `x` and `y` are weakly on the same side of `s`. -/
def WSameSide (s : AffineSubspace R P) (x y : P) : Prop :=
@@ -63,7 +63,7 @@ def SSameSide (s : AffineSubspace R P) (x y : P) : Prop :=
#align affine_subspace.s_same_side AffineSubspace.SSameSide
-/
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (p₁ p₂ «expr ∈ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (p₁ p₂ «expr ∈ » s) -/
#print AffineSubspace.WOppSide /-
/-- The points `x` and `y` are weakly on opposite sides of `s`. -/
def WOppSide (s : AffineSubspace R P) (x y : P) : Prop :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/5f25c089cb34db4db112556f23c50d12da81b297
@@ -802,7 +802,7 @@ theorem sOppSide_lineMap_right {s : AffineSubspace R P} {x y : P} (hx : x ∈ s)
#align affine_subspace.s_opp_side_line_map_right AffineSubspace.sOppSide_lineMap_right
theorem setOf_wSameSide_eq_image2 {s : AffineSubspace R P} {x p : P} (hx : x ∉ s) (hp : p ∈ s) :
- { y | s.WSameSide x y } = Set.image2 (fun (t : R) q => t • (x -ᵥ p) +ᵥ q) (Set.Ici 0) s :=
+ {y | s.WSameSide x y} = Set.image2 (fun (t : R) q => t • (x -ᵥ p) +ᵥ q) (Set.Ici 0) s :=
by
ext y
simp_rw [Set.mem_setOf, Set.mem_image2, Set.mem_Ici, mem_coe]
@@ -822,7 +822,7 @@ theorem setOf_wSameSide_eq_image2 {s : AffineSubspace R P} {x p : P} (hx : x ∉
#align affine_subspace.set_of_w_same_side_eq_image2 AffineSubspace.setOf_wSameSide_eq_image2
theorem setOf_sSameSide_eq_image2 {s : AffineSubspace R P} {x p : P} (hx : x ∉ s) (hp : p ∈ s) :
- { y | s.SSameSide x y } = Set.image2 (fun (t : R) q => t • (x -ᵥ p) +ᵥ q) (Set.Ioi 0) s :=
+ {y | s.SSameSide x y} = Set.image2 (fun (t : R) q => t • (x -ᵥ p) +ᵥ q) (Set.Ioi 0) s :=
by
ext y
simp_rw [Set.mem_setOf, Set.mem_image2, Set.mem_Ioi, mem_coe]
@@ -841,7 +841,7 @@ theorem setOf_sSameSide_eq_image2 {s : AffineSubspace R P} {x p : P} (hx : x ∉
#align affine_subspace.set_of_s_same_side_eq_image2 AffineSubspace.setOf_sSameSide_eq_image2
theorem setOf_wOppSide_eq_image2 {s : AffineSubspace R P} {x p : P} (hx : x ∉ s) (hp : p ∈ s) :
- { y | s.WOppSide x y } = Set.image2 (fun (t : R) q => t • (x -ᵥ p) +ᵥ q) (Set.Iic 0) s :=
+ {y | s.WOppSide x y} = Set.image2 (fun (t : R) q => t • (x -ᵥ p) +ᵥ q) (Set.Iic 0) s :=
by
ext y
simp_rw [Set.mem_setOf, Set.mem_image2, Set.mem_Iic, mem_coe]
@@ -861,7 +861,7 @@ theorem setOf_wOppSide_eq_image2 {s : AffineSubspace R P} {x p : P} (hx : x ∉
#align affine_subspace.set_of_w_opp_side_eq_image2 AffineSubspace.setOf_wOppSide_eq_image2
theorem setOf_sOppSide_eq_image2 {s : AffineSubspace R P} {x p : P} (hx : x ∉ s) (hp : p ∈ s) :
- { y | s.SOppSide x y } = Set.image2 (fun (t : R) q => t • (x -ᵥ p) +ᵥ q) (Set.Iio 0) s :=
+ {y | s.SOppSide x y} = Set.image2 (fun (t : R) q => t • (x -ᵥ p) +ᵥ q) (Set.Iio 0) s :=
by
ext y
simp_rw [Set.mem_setOf, Set.mem_image2, Set.mem_Iio, mem_coe]
@@ -902,7 +902,7 @@ variable [NormedAddTorsor V P]
include V
theorem isConnected_setOf_wSameSide {s : AffineSubspace ℝ P} (x : P) (h : (s : Set P).Nonempty) :
- IsConnected { y | s.WSameSide x y } :=
+ IsConnected {y | s.WSameSide x y} :=
by
obtain ⟨p, hp⟩ := h
haveI : Nonempty s := ⟨⟨p, hp⟩⟩
@@ -918,7 +918,7 @@ theorem isConnected_setOf_wSameSide {s : AffineSubspace ℝ P} (x : P) (h : (s :
#align affine_subspace.is_connected_set_of_w_same_side AffineSubspace.isConnected_setOf_wSameSide
theorem isPreconnected_setOf_wSameSide (s : AffineSubspace ℝ P) (x : P) :
- IsPreconnected { y | s.WSameSide x y } :=
+ IsPreconnected {y | s.WSameSide x y} :=
by
rcases Set.eq_empty_or_nonempty (s : Set P) with (h | h)
· convert isPreconnected_empty
@@ -929,7 +929,7 @@ theorem isPreconnected_setOf_wSameSide (s : AffineSubspace ℝ P) (x : P) :
#align affine_subspace.is_preconnected_set_of_w_same_side AffineSubspace.isPreconnected_setOf_wSameSide
theorem isConnected_setOf_sSameSide {s : AffineSubspace ℝ P} {x : P} (hx : x ∉ s)
- (h : (s : Set P).Nonempty) : IsConnected { y | s.SSameSide x y } :=
+ (h : (s : Set P).Nonempty) : IsConnected {y | s.SSameSide x y} :=
by
obtain ⟨p, hp⟩ := h
haveI : Nonempty s := ⟨⟨p, hp⟩⟩
@@ -941,7 +941,7 @@ theorem isConnected_setOf_sSameSide {s : AffineSubspace ℝ P} {x : P} (hx : x
#align affine_subspace.is_connected_set_of_s_same_side AffineSubspace.isConnected_setOf_sSameSide
theorem isPreconnected_setOf_sSameSide (s : AffineSubspace ℝ P) (x : P) :
- IsPreconnected { y | s.SSameSide x y } :=
+ IsPreconnected {y | s.SSameSide x y} :=
by
rcases Set.eq_empty_or_nonempty (s : Set P) with (h | h)
· convert isPreconnected_empty
@@ -956,8 +956,7 @@ theorem isPreconnected_setOf_sSameSide (s : AffineSubspace ℝ P) (x : P) :
#align affine_subspace.is_preconnected_set_of_s_same_side AffineSubspace.isPreconnected_setOf_sSameSide
theorem isConnected_setOf_wOppSide {s : AffineSubspace ℝ P} (x : P) (h : (s : Set P).Nonempty) :
- IsConnected { y | s.WOppSide x y } :=
- by
+ IsConnected {y | s.WOppSide x y} := by
obtain ⟨p, hp⟩ := h
haveI : Nonempty s := ⟨⟨p, hp⟩⟩
by_cases hx : x ∈ s
@@ -972,7 +971,7 @@ theorem isConnected_setOf_wOppSide {s : AffineSubspace ℝ P} (x : P) (h : (s :
#align affine_subspace.is_connected_set_of_w_opp_side AffineSubspace.isConnected_setOf_wOppSide
theorem isPreconnected_setOf_wOppSide (s : AffineSubspace ℝ P) (x : P) :
- IsPreconnected { y | s.WOppSide x y } :=
+ IsPreconnected {y | s.WOppSide x y} :=
by
rcases Set.eq_empty_or_nonempty (s : Set P) with (h | h)
· convert isPreconnected_empty
@@ -983,7 +982,7 @@ theorem isPreconnected_setOf_wOppSide (s : AffineSubspace ℝ P) (x : P) :
#align affine_subspace.is_preconnected_set_of_w_opp_side AffineSubspace.isPreconnected_setOf_wOppSide
theorem isConnected_setOf_sOppSide {s : AffineSubspace ℝ P} {x : P} (hx : x ∉ s)
- (h : (s : Set P).Nonempty) : IsConnected { y | s.SOppSide x y } :=
+ (h : (s : Set P).Nonempty) : IsConnected {y | s.SOppSide x y} :=
by
obtain ⟨p, hp⟩ := h
haveI : Nonempty s := ⟨⟨p, hp⟩⟩
@@ -995,7 +994,7 @@ theorem isConnected_setOf_sOppSide {s : AffineSubspace ℝ P} {x : P} (hx : x
#align affine_subspace.is_connected_set_of_s_opp_side AffineSubspace.isConnected_setOf_sOppSide
theorem isPreconnected_setOf_sOppSide (s : AffineSubspace ℝ P) (x : P) :
- IsPreconnected { y | s.SOppSide x y } :=
+ IsPreconnected {y | s.SOppSide x y} :=
by
rcases Set.eq_empty_or_nonempty (s : Set P) with (h | h)
· convert isPreconnected_empty
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -52,7 +52,7 @@ include V
#print AffineSubspace.WSameSide /-
/-- The points `x` and `y` are weakly on the same side of `s`. -/
def WSameSide (s : AffineSubspace R P) (x y : P) : Prop :=
- ∃ (p₁ : _)(_ : p₁ ∈ s)(p₂ : _)(_ : p₂ ∈ s), SameRay R (x -ᵥ p₁) (y -ᵥ p₂)
+ ∃ (p₁ : _) (_ : p₁ ∈ s) (p₂ : _) (_ : p₂ ∈ s), SameRay R (x -ᵥ p₁) (y -ᵥ p₂)
#align affine_subspace.w_same_side AffineSubspace.WSameSide
-/
@@ -67,7 +67,7 @@ def SSameSide (s : AffineSubspace R P) (x y : P) : Prop :=
#print AffineSubspace.WOppSide /-
/-- The points `x` and `y` are weakly on opposite sides of `s`. -/
def WOppSide (s : AffineSubspace R P) (x y : P) : Prop :=
- ∃ (p₁ : _)(_ : p₁ ∈ s)(p₂ : _)(_ : p₂ ∈ s), SameRay R (x -ᵥ p₁) (p₂ -ᵥ y)
+ ∃ (p₁ : _) (_ : p₁ ∈ s) (p₂ : _) (_ : p₂ ∈ s), SameRay R (x -ᵥ p₁) (p₂ -ᵥ y)
#align affine_subspace.w_opp_side AffineSubspace.WOppSide
-/
@@ -94,11 +94,11 @@ theorem Function.Injective.wSameSide_map_iff {s : AffineSubspace R P} {x y : P}
by
refine' ⟨fun h => _, fun h => h.map _⟩
rcases h with ⟨fp₁, hfp₁, fp₂, hfp₂, h⟩
- rw [mem_map] at hfp₁ hfp₂
+ rw [mem_map] at hfp₁ hfp₂
rcases hfp₁ with ⟨p₁, hp₁, rfl⟩
rcases hfp₂ with ⟨p₂, hp₂, rfl⟩
refine' ⟨p₁, hp₁, p₂, hp₂, _⟩
- simp_rw [← linear_map_vsub, (f.linear_injective_iff.2 hf).sameRay_map_iff] at h
+ simp_rw [← linear_map_vsub, (f.linear_injective_iff.2 hf).sameRay_map_iff] at h
exact h
#align function.injective.w_same_side_map_iff Function.Injective.wSameSide_map_iff
@@ -133,11 +133,11 @@ theorem Function.Injective.wOppSide_map_iff {s : AffineSubspace R P} {x y : P} {
by
refine' ⟨fun h => _, fun h => h.map _⟩
rcases h with ⟨fp₁, hfp₁, fp₂, hfp₂, h⟩
- rw [mem_map] at hfp₁ hfp₂
+ rw [mem_map] at hfp₁ hfp₂
rcases hfp₁ with ⟨p₁, hp₁, rfl⟩
rcases hfp₂ with ⟨p₂, hp₂, rfl⟩
refine' ⟨p₁, hp₁, p₂, hp₂, _⟩
- simp_rw [← linear_map_vsub, (f.linear_injective_iff.2 hf).sameRay_map_iff] at h
+ simp_rw [← linear_map_vsub, (f.linear_injective_iff.2 hf).sameRay_map_iff] at h
exact h
#align function.injective.w_opp_side_map_iff Function.Injective.wOppSide_map_iff
@@ -449,7 +449,7 @@ theorem wOppSide_self_iff {s : AffineSubspace R P} {x : P} : s.WOppSide x x ↔
constructor
· rintro ⟨p₁, hp₁, p₂, hp₂, h⟩
obtain ⟨a, -, -, -, -, h₁, -⟩ := h.exists_eq_smul_add
- rw [add_comm, vsub_add_vsub_cancel, ← eq_vadd_iff_vsub_eq] at h₁
+ rw [add_comm, vsub_add_vsub_cancel, ← eq_vadd_iff_vsub_eq] at h₁
rw [h₁]
exact s.smul_vsub_vadd_mem a hp₂ hp₁ hp₁
· exact fun h => ⟨x, h, x, h, SameRay.rfl⟩
@@ -463,7 +463,7 @@ theorem wSameSide_iff_exists_left {s : AffineSubspace R P} {x y p₁ : P} (h : p
by
constructor
· rintro ⟨p₁', hp₁', p₂', hp₂', h0 | h0 | ⟨r₁, r₂, hr₁, hr₂, hr⟩⟩
- · rw [vsub_eq_zero_iff_eq] at h0
+ · rw [vsub_eq_zero_iff_eq] at h0
rw [h0]
exact Or.inl hp₁'
· refine' Or.inr ⟨p₂', hp₂', _⟩
@@ -507,7 +507,7 @@ theorem wOppSide_iff_exists_left {s : AffineSubspace R P} {x y p₁ : P} (h : p
by
constructor
· rintro ⟨p₁', hp₁', p₂', hp₂', h0 | h0 | ⟨r₁, r₂, hr₁, hr₂, hr⟩⟩
- · rw [vsub_eq_zero_iff_eq] at h0
+ · rw [vsub_eq_zero_iff_eq] at h0
rw [h0]
exact Or.inl hp₁'
· refine' Or.inr ⟨p₂', hp₂', _⟩
@@ -559,11 +559,11 @@ theorem WSameSide.trans {s : AffineSubspace R P} {x y z : P} (hxy : s.WSameSide
(hyz : s.WSameSide y z) (hy : y ∉ s) : s.WSameSide x z :=
by
rcases hxy with ⟨p₁, hp₁, p₂, hp₂, hxy⟩
- rw [w_same_side_iff_exists_left hp₂, or_iff_right hy] at hyz
+ rw [w_same_side_iff_exists_left hp₂, or_iff_right hy] at hyz
rcases hyz with ⟨p₃, hp₃, hyz⟩
refine' ⟨p₁, hp₁, p₃, hp₃, hxy.trans hyz _⟩
refine' fun h => False.elim _
- rw [vsub_eq_zero_iff_eq] at h
+ rw [vsub_eq_zero_iff_eq] at h
exact hy (h.symm ▸ hp₂)
#align affine_subspace.w_same_side.trans AffineSubspace.WSameSide.trans
@@ -576,11 +576,11 @@ theorem WSameSide.trans_wOppSide {s : AffineSubspace R P} {x y z : P} (hxy : s.W
(hyz : s.WOppSide y z) (hy : y ∉ s) : s.WOppSide x z :=
by
rcases hxy with ⟨p₁, hp₁, p₂, hp₂, hxy⟩
- rw [w_opp_side_iff_exists_left hp₂, or_iff_right hy] at hyz
+ rw [w_opp_side_iff_exists_left hp₂, or_iff_right hy] at hyz
rcases hyz with ⟨p₃, hp₃, hyz⟩
refine' ⟨p₁, hp₁, p₃, hp₃, hxy.trans hyz _⟩
refine' fun h => False.elim _
- rw [vsub_eq_zero_iff_eq] at h
+ rw [vsub_eq_zero_iff_eq] at h
exact hy (h.symm ▸ hp₂)
#align affine_subspace.w_same_side.trans_w_opp_side AffineSubspace.WSameSide.trans_wOppSide
@@ -623,12 +623,12 @@ theorem WOppSide.trans {s : AffineSubspace R P} {x y z : P} (hxy : s.WOppSide x
(hyz : s.WOppSide y z) (hy : y ∉ s) : s.WSameSide x z :=
by
rcases hxy with ⟨p₁, hp₁, p₂, hp₂, hxy⟩
- rw [w_opp_side_iff_exists_left hp₂, or_iff_right hy] at hyz
+ rw [w_opp_side_iff_exists_left hp₂, or_iff_right hy] at hyz
rcases hyz with ⟨p₃, hp₃, hyz⟩
- rw [← sameRay_neg_iff, neg_vsub_eq_vsub_rev, neg_vsub_eq_vsub_rev] at hyz
+ rw [← sameRay_neg_iff, neg_vsub_eq_vsub_rev, neg_vsub_eq_vsub_rev] at hyz
refine' ⟨p₁, hp₁, p₃, hp₃, hxy.trans hyz _⟩
refine' fun h => False.elim _
- rw [vsub_eq_zero_iff_eq] at h
+ rw [vsub_eq_zero_iff_eq] at h
exact hy (h ▸ hp₂)
#align affine_subspace.w_opp_side.trans AffineSubspace.WOppSide.trans
@@ -662,9 +662,9 @@ theorem wSameSide_and_wOppSide_iff {s : AffineSubspace R P} {x y : P} :
by
constructor
· rintro ⟨hs, ho⟩
- rw [w_opp_side_comm] at ho
+ rw [w_opp_side_comm] at ho
by_contra h
- rw [not_or] at h
+ rw [not_or] at h
exact h.1 (w_opp_side_self_iff.1 (hs.trans_w_opp_side ho h.2))
· rintro (h | h)
· exact ⟨w_same_side_of_left_mem y h, w_opp_side_of_left_mem y h⟩
@@ -710,10 +710,10 @@ theorem wOppSide_iff_exists_wbtw {s : AffineSubspace R P} {x y : P} :
by
refine' ⟨fun h => _, fun ⟨p, hp, h⟩ => h.wOppSide₁₃ hp⟩
rcases h with ⟨p₁, hp₁, p₂, hp₂, h | h | ⟨r₁, r₂, hr₁, hr₂, h⟩⟩
- · rw [vsub_eq_zero_iff_eq] at h
+ · rw [vsub_eq_zero_iff_eq] at h
rw [h]
exact ⟨p₁, hp₁, wbtw_self_left _ _ _⟩
- · rw [vsub_eq_zero_iff_eq] at h
+ · rw [vsub_eq_zero_iff_eq] at h
rw [← h]
exact ⟨p₂, hp₂, wbtw_self_right _ _ _⟩
· refine' ⟨line_map x y (r₂ / (r₁ + r₂)), _, _⟩
@@ -747,12 +747,12 @@ theorem Sbtw.sOppSide_of_not_mem_of_mem {s : AffineSubspace R P} {x y z : P} (h
by
refine' ⟨h.wbtw.w_opp_side₁₃ hy, hx, fun hz => hx _⟩
rcases h with ⟨⟨t, ⟨ht0, ht1⟩, rfl⟩, hyx, hyz⟩
- rw [line_map_apply] at hy
+ rw [line_map_apply] at hy
have ht : t ≠ 1 := by rintro rfl; simpa [line_map_apply] using hyz
have hy' := vsub_mem_direction hy hz
rw [vadd_vsub_assoc, ← neg_vsub_eq_vsub_rev z, ← neg_one_smul R (z -ᵥ x), ← add_smul, ←
- sub_eq_add_neg, s.direction.smul_mem_iff (sub_ne_zero_of_ne ht)] at hy'
- rwa [vadd_mem_iff_mem_of_mem_direction (Submodule.smul_mem _ _ hy')] at hy
+ sub_eq_add_neg, s.direction.smul_mem_iff (sub_ne_zero_of_ne ht)] at hy'
+ rwa [vadd_mem_iff_mem_of_mem_direction (Submodule.smul_mem _ _ hy')] at hy
#align sbtw.s_opp_side_of_not_mem_of_mem Sbtw.sOppSide_of_not_mem_of_mem
theorem sSameSide_smul_vsub_vadd_left {s : AffineSubspace R P} {x p₁ p₂ : P} (hx : x ∉ s)
@@ -760,7 +760,7 @@ theorem sSameSide_smul_vsub_vadd_left {s : AffineSubspace R P} {x p₁ p₂ : P}
by
refine' ⟨w_same_side_smul_vsub_vadd_left x hp₁ hp₂ ht.le, fun h => hx _, hx⟩
rwa [vadd_mem_iff_mem_direction _ hp₂, s.direction.smul_mem_iff ht.ne.symm,
- vsub_right_mem_direction_iff_mem hp₁] at h
+ vsub_right_mem_direction_iff_mem hp₁] at h
#align affine_subspace.s_same_side_smul_vsub_vadd_left AffineSubspace.sSameSide_smul_vsub_vadd_left
theorem sSameSide_smul_vsub_vadd_right {s : AffineSubspace R P} {x p₁ p₂ : P} (hx : x ∉ s)
@@ -783,7 +783,7 @@ theorem sOppSide_smul_vsub_vadd_left {s : AffineSubspace R P} {x p₁ p₂ : P}
by
refine' ⟨w_opp_side_smul_vsub_vadd_left x hp₁ hp₂ ht.le, fun h => hx _, hx⟩
rwa [vadd_mem_iff_mem_direction _ hp₂, s.direction.smul_mem_iff ht.ne,
- vsub_right_mem_direction_iff_mem hp₁] at h
+ vsub_right_mem_direction_iff_mem hp₁] at h
#align affine_subspace.s_opp_side_smul_vsub_vadd_left AffineSubspace.sOppSide_smul_vsub_vadd_left
theorem sOppSide_smul_vsub_vadd_right {s : AffineSubspace R P} {x p₁ p₂ : P} (hx : x ∉ s)
@@ -809,9 +809,9 @@ theorem setOf_wSameSide_eq_image2 {s : AffineSubspace R P} {x p : P} (hx : x ∉
constructor
· rw [w_same_side_iff_exists_left hp, or_iff_right hx]
rintro ⟨p₂, hp₂, h | h | ⟨r₁, r₂, hr₁, hr₂, h⟩⟩
- · rw [vsub_eq_zero_iff_eq] at h
+ · rw [vsub_eq_zero_iff_eq] at h
exact False.elim (hx (h.symm ▸ hp))
- · rw [vsub_eq_zero_iff_eq] at h
+ · rw [vsub_eq_zero_iff_eq] at h
refine' ⟨0, p₂, le_refl _, hp₂, _⟩
simp [h]
· refine' ⟨r₁ / r₂, p₂, (div_pos hr₁ hr₂).le, hp₂, _⟩
@@ -829,9 +829,9 @@ theorem setOf_sSameSide_eq_image2 {s : AffineSubspace R P} {x p : P} (hx : x ∉
constructor
· rw [s_same_side_iff_exists_left hp]
rintro ⟨-, hy, p₂, hp₂, h | h | ⟨r₁, r₂, hr₁, hr₂, h⟩⟩
- · rw [vsub_eq_zero_iff_eq] at h
+ · rw [vsub_eq_zero_iff_eq] at h
exact False.elim (hx (h.symm ▸ hp))
- · rw [vsub_eq_zero_iff_eq] at h
+ · rw [vsub_eq_zero_iff_eq] at h
exact False.elim (hy (h.symm ▸ hp₂))
· refine' ⟨r₁ / r₂, p₂, div_pos hr₁ hr₂, hp₂, _⟩
rw [div_eq_inv_mul, ← smul_smul, h, smul_smul, inv_mul_cancel hr₂.ne.symm, one_smul,
@@ -848,9 +848,9 @@ theorem setOf_wOppSide_eq_image2 {s : AffineSubspace R P} {x p : P} (hx : x ∉
constructor
· rw [w_opp_side_iff_exists_left hp, or_iff_right hx]
rintro ⟨p₂, hp₂, h | h | ⟨r₁, r₂, hr₁, hr₂, h⟩⟩
- · rw [vsub_eq_zero_iff_eq] at h
+ · rw [vsub_eq_zero_iff_eq] at h
exact False.elim (hx (h.symm ▸ hp))
- · rw [vsub_eq_zero_iff_eq] at h
+ · rw [vsub_eq_zero_iff_eq] at h
refine' ⟨0, p₂, le_refl _, hp₂, _⟩
simp [h]
· refine' ⟨-r₁ / r₂, p₂, (div_neg_of_neg_of_pos (Left.neg_neg_iff.2 hr₁) hr₂).le, hp₂, _⟩
@@ -868,9 +868,9 @@ theorem setOf_sOppSide_eq_image2 {s : AffineSubspace R P} {x p : P} (hx : x ∉
constructor
· rw [s_opp_side_iff_exists_left hp]
rintro ⟨-, hy, p₂, hp₂, h | h | ⟨r₁, r₂, hr₁, hr₂, h⟩⟩
- · rw [vsub_eq_zero_iff_eq] at h
+ · rw [vsub_eq_zero_iff_eq] at h
exact False.elim (hx (h.symm ▸ hp))
- · rw [vsub_eq_zero_iff_eq] at h
+ · rw [vsub_eq_zero_iff_eq] at h
exact False.elim (hy (h ▸ hp₂))
· refine' ⟨-r₁ / r₂, p₂, div_neg_of_neg_of_pos (Left.neg_neg_iff.2 hr₁) hr₂, hp₂, _⟩
rw [div_eq_inv_mul, ← smul_smul, neg_smul, h, smul_neg, smul_smul, inv_mul_cancel hr₂.ne.symm,
@@ -922,7 +922,7 @@ theorem isPreconnected_setOf_wSameSide (s : AffineSubspace ℝ P) (x : P) :
by
rcases Set.eq_empty_or_nonempty (s : Set P) with (h | h)
· convert isPreconnected_empty
- rw [coe_eq_bot_iff] at h
+ rw [coe_eq_bot_iff] at h
simp only [h, not_w_same_side_bot]
rfl
· exact (is_connected_set_of_w_same_side x h).IsPreconnected
@@ -945,7 +945,7 @@ theorem isPreconnected_setOf_sSameSide (s : AffineSubspace ℝ P) (x : P) :
by
rcases Set.eq_empty_or_nonempty (s : Set P) with (h | h)
· convert isPreconnected_empty
- rw [coe_eq_bot_iff] at h
+ rw [coe_eq_bot_iff] at h
simp only [h, not_s_same_side_bot]
rfl
· by_cases hx : x ∈ s
@@ -976,7 +976,7 @@ theorem isPreconnected_setOf_wOppSide (s : AffineSubspace ℝ P) (x : P) :
by
rcases Set.eq_empty_or_nonempty (s : Set P) with (h | h)
· convert isPreconnected_empty
- rw [coe_eq_bot_iff] at h
+ rw [coe_eq_bot_iff] at h
simp only [h, not_w_opp_side_bot]
rfl
· exact (is_connected_set_of_w_opp_side x h).IsPreconnected
@@ -999,7 +999,7 @@ theorem isPreconnected_setOf_sOppSide (s : AffineSubspace ℝ P) (x : P) :
by
rcases Set.eq_empty_or_nonempty (s : Set P) with (h | h)
· convert isPreconnected_empty
- rw [coe_eq_bot_iff] at h
+ rw [coe_eq_bot_iff] at h
simp only [h, not_s_opp_side_bot]
rfl
· by_cases hx : x ∈ s
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -80,9 +80,6 @@ def SOppSide (s : AffineSubspace R P) (x y : P) : Prop :=
include V'
-/- warning: affine_subspace.w_same_side.map -> AffineSubspace.WSameSide.map is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align affine_subspace.w_same_side.map AffineSubspace.WSameSide.mapₓ'. -/
theorem WSameSide.map {s : AffineSubspace R P} {x y : P} (h : s.WSameSide x y) (f : P →ᵃ[R] P') :
(s.map f).WSameSide (f x) (f y) :=
by
@@ -92,9 +89,6 @@ theorem WSameSide.map {s : AffineSubspace R P} {x y : P} (h : s.WSameSide x y) (
exact h.map f.linear
#align affine_subspace.w_same_side.map AffineSubspace.WSameSide.map
-/- warning: function.injective.w_same_side_map_iff -> Function.Injective.wSameSide_map_iff is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align function.injective.w_same_side_map_iff Function.Injective.wSameSide_map_iffₓ'. -/
theorem Function.Injective.wSameSide_map_iff {s : AffineSubspace R P} {x y : P} {f : P →ᵃ[R] P'}
(hf : Function.Injective f) : (s.map f).WSameSide (f x) (f y) ↔ s.WSameSide x y :=
by
@@ -108,35 +102,23 @@ theorem Function.Injective.wSameSide_map_iff {s : AffineSubspace R P} {x y : P}
exact h
#align function.injective.w_same_side_map_iff Function.Injective.wSameSide_map_iff
-/- warning: function.injective.s_same_side_map_iff -> Function.Injective.sSameSide_map_iff is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align function.injective.s_same_side_map_iff Function.Injective.sSameSide_map_iffₓ'. -/
theorem Function.Injective.sSameSide_map_iff {s : AffineSubspace R P} {x y : P} {f : P →ᵃ[R] P'}
(hf : Function.Injective f) : (s.map f).SSameSide (f x) (f y) ↔ s.SSameSide x y := by
simp_rw [s_same_side, hf.w_same_side_map_iff, mem_map_iff_mem_of_injective hf]
#align function.injective.s_same_side_map_iff Function.Injective.sSameSide_map_iff
-/- warning: affine_equiv.w_same_side_map_iff -> AffineEquiv.wSameSide_map_iff is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align affine_equiv.w_same_side_map_iff AffineEquiv.wSameSide_map_iffₓ'. -/
@[simp]
theorem AffineEquiv.wSameSide_map_iff {s : AffineSubspace R P} {x y : P} (f : P ≃ᵃ[R] P') :
(s.map ↑f).WSameSide (f x) (f y) ↔ s.WSameSide x y :=
(show Function.Injective f.toAffineMap from f.Injective).wSameSide_map_iff
#align affine_equiv.w_same_side_map_iff AffineEquiv.wSameSide_map_iff
-/- warning: affine_equiv.s_same_side_map_iff -> AffineEquiv.sSameSide_map_iff is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align affine_equiv.s_same_side_map_iff AffineEquiv.sSameSide_map_iffₓ'. -/
@[simp]
theorem AffineEquiv.sSameSide_map_iff {s : AffineSubspace R P} {x y : P} (f : P ≃ᵃ[R] P') :
(s.map ↑f).SSameSide (f x) (f y) ↔ s.SSameSide x y :=
(show Function.Injective f.toAffineMap from f.Injective).sSameSide_map_iff
#align affine_equiv.s_same_side_map_iff AffineEquiv.sSameSide_map_iff
-/- warning: affine_subspace.w_opp_side.map -> AffineSubspace.WOppSide.map is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align affine_subspace.w_opp_side.map AffineSubspace.WOppSide.mapₓ'. -/
theorem WOppSide.map {s : AffineSubspace R P} {x y : P} (h : s.WOppSide x y) (f : P →ᵃ[R] P') :
(s.map f).WOppSide (f x) (f y) :=
by
@@ -146,9 +128,6 @@ theorem WOppSide.map {s : AffineSubspace R P} {x y : P} (h : s.WOppSide x y) (f
exact h.map f.linear
#align affine_subspace.w_opp_side.map AffineSubspace.WOppSide.map
-/- warning: function.injective.w_opp_side_map_iff -> Function.Injective.wOppSide_map_iff is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align function.injective.w_opp_side_map_iff Function.Injective.wOppSide_map_iffₓ'. -/
theorem Function.Injective.wOppSide_map_iff {s : AffineSubspace R P} {x y : P} {f : P →ᵃ[R] P'}
(hf : Function.Injective f) : (s.map f).WOppSide (f x) (f y) ↔ s.WOppSide x y :=
by
@@ -162,26 +141,17 @@ theorem Function.Injective.wOppSide_map_iff {s : AffineSubspace R P} {x y : P} {
exact h
#align function.injective.w_opp_side_map_iff Function.Injective.wOppSide_map_iff
-/- warning: function.injective.s_opp_side_map_iff -> Function.Injective.sOppSide_map_iff is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align function.injective.s_opp_side_map_iff Function.Injective.sOppSide_map_iffₓ'. -/
theorem Function.Injective.sOppSide_map_iff {s : AffineSubspace R P} {x y : P} {f : P →ᵃ[R] P'}
(hf : Function.Injective f) : (s.map f).SOppSide (f x) (f y) ↔ s.SOppSide x y := by
simp_rw [s_opp_side, hf.w_opp_side_map_iff, mem_map_iff_mem_of_injective hf]
#align function.injective.s_opp_side_map_iff Function.Injective.sOppSide_map_iff
-/- warning: affine_equiv.w_opp_side_map_iff -> AffineEquiv.wOppSide_map_iff is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align affine_equiv.w_opp_side_map_iff AffineEquiv.wOppSide_map_iffₓ'. -/
@[simp]
theorem AffineEquiv.wOppSide_map_iff {s : AffineSubspace R P} {x y : P} (f : P ≃ᵃ[R] P') :
(s.map ↑f).WOppSide (f x) (f y) ↔ s.WOppSide x y :=
(show Function.Injective f.toAffineMap from f.Injective).wOppSide_map_iff
#align affine_equiv.w_opp_side_map_iff AffineEquiv.wOppSide_map_iff
-/- warning: affine_equiv.s_opp_side_map_iff -> AffineEquiv.sOppSide_map_iff is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align affine_equiv.s_opp_side_map_iff AffineEquiv.sOppSide_map_iffₓ'. -/
@[simp]
theorem AffineEquiv.sOppSide_map_iff {s : AffineSubspace R P} {x y : P} (f : P ≃ᵃ[R] P') :
(s.map ↑f).SOppSide (f x) (f y) ↔ s.SOppSide x y :=
@@ -190,157 +160,67 @@ theorem AffineEquiv.sOppSide_map_iff {s : AffineSubspace R P} {x y : P} (f : P
omit V'
-/- warning: affine_subspace.w_same_side.nonempty -> AffineSubspace.WSameSide.nonempty is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.WSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) -> (Set.Nonempty.{u3} P ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (Set.{u3} P) (HasLiftT.mk.{succ u3, succ u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (Set.{u3} P) (CoeTCₓ.coe.{succ u3, succ u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (Set.{u3} P) (SetLike.Set.hasCoeT.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)))) s))
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.WSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) -> (Set.Nonempty.{u1} P (SetLike.coe.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) s))
-Case conversion may be inaccurate. Consider using '#align affine_subspace.w_same_side.nonempty AffineSubspace.WSameSide.nonemptyₓ'. -/
theorem WSameSide.nonempty {s : AffineSubspace R P} {x y : P} (h : s.WSameSide x y) :
(s : Set P).Nonempty :=
⟨h.some, h.choose_spec.some⟩
#align affine_subspace.w_same_side.nonempty AffineSubspace.WSameSide.nonempty
-/- warning: affine_subspace.s_same_side.nonempty -> AffineSubspace.SSameSide.nonempty is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.SSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) -> (Set.Nonempty.{u3} P ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (Set.{u3} P) (HasLiftT.mk.{succ u3, succ u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (Set.{u3} P) (CoeTCₓ.coe.{succ u3, succ u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (Set.{u3} P) (SetLike.Set.hasCoeT.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)))) s))
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.SSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) -> (Set.Nonempty.{u1} P (SetLike.coe.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) s))
-Case conversion may be inaccurate. Consider using '#align affine_subspace.s_same_side.nonempty AffineSubspace.SSameSide.nonemptyₓ'. -/
theorem SSameSide.nonempty {s : AffineSubspace R P} {x y : P} (h : s.SSameSide x y) :
(s : Set P).Nonempty :=
⟨h.1.some, h.1.choose_spec.some⟩
#align affine_subspace.s_same_side.nonempty AffineSubspace.SSameSide.nonempty
-/- warning: affine_subspace.w_opp_side.nonempty -> AffineSubspace.WOppSide.nonempty is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.WOppSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) -> (Set.Nonempty.{u3} P ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (Set.{u3} P) (HasLiftT.mk.{succ u3, succ u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (Set.{u3} P) (CoeTCₓ.coe.{succ u3, succ u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (Set.{u3} P) (SetLike.Set.hasCoeT.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)))) s))
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.WOppSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) -> (Set.Nonempty.{u1} P (SetLike.coe.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) s))
-Case conversion may be inaccurate. Consider using '#align affine_subspace.w_opp_side.nonempty AffineSubspace.WOppSide.nonemptyₓ'. -/
theorem WOppSide.nonempty {s : AffineSubspace R P} {x y : P} (h : s.WOppSide x y) :
(s : Set P).Nonempty :=
⟨h.some, h.choose_spec.some⟩
#align affine_subspace.w_opp_side.nonempty AffineSubspace.WOppSide.nonempty
-/- warning: affine_subspace.s_opp_side.nonempty -> AffineSubspace.SOppSide.nonempty is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.SOppSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) -> (Set.Nonempty.{u3} P ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (Set.{u3} P) (HasLiftT.mk.{succ u3, succ u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (Set.{u3} P) (CoeTCₓ.coe.{succ u3, succ u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (Set.{u3} P) (SetLike.Set.hasCoeT.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)))) s))
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.SOppSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) -> (Set.Nonempty.{u1} P (SetLike.coe.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) s))
-Case conversion may be inaccurate. Consider using '#align affine_subspace.s_opp_side.nonempty AffineSubspace.SOppSide.nonemptyₓ'. -/
theorem SOppSide.nonempty {s : AffineSubspace R P} {x y : P} (h : s.SOppSide x y) :
(s : Set P).Nonempty :=
⟨h.1.some, h.1.choose_spec.some⟩
#align affine_subspace.s_opp_side.nonempty AffineSubspace.SOppSide.nonempty
-/- warning: affine_subspace.s_same_side.w_same_side -> AffineSubspace.SSameSide.wSameSide is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.SSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.WSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y)
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.SSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.WSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y)
-Case conversion may be inaccurate. Consider using '#align affine_subspace.s_same_side.w_same_side AffineSubspace.SSameSide.wSameSideₓ'. -/
theorem SSameSide.wSameSide {s : AffineSubspace R P} {x y : P} (h : s.SSameSide x y) :
s.WSameSide x y :=
h.1
#align affine_subspace.s_same_side.w_same_side AffineSubspace.SSameSide.wSameSide
-/- warning: affine_subspace.s_same_side.left_not_mem -> AffineSubspace.SSameSide.left_not_mem is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.SSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) -> (Not (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)) x s))
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.SSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) -> (Not (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4)) x s))
-Case conversion may be inaccurate. Consider using '#align affine_subspace.s_same_side.left_not_mem AffineSubspace.SSameSide.left_not_memₓ'. -/
theorem SSameSide.left_not_mem {s : AffineSubspace R P} {x y : P} (h : s.SSameSide x y) : x ∉ s :=
h.2.1
#align affine_subspace.s_same_side.left_not_mem AffineSubspace.SSameSide.left_not_mem
-/- warning: affine_subspace.s_same_side.right_not_mem -> AffineSubspace.SSameSide.right_not_mem is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.SSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) -> (Not (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)) y s))
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.SSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) -> (Not (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4)) y s))
-Case conversion may be inaccurate. Consider using '#align affine_subspace.s_same_side.right_not_mem AffineSubspace.SSameSide.right_not_memₓ'. -/
theorem SSameSide.right_not_mem {s : AffineSubspace R P} {x y : P} (h : s.SSameSide x y) : y ∉ s :=
h.2.2
#align affine_subspace.s_same_side.right_not_mem AffineSubspace.SSameSide.right_not_mem
-/- warning: affine_subspace.s_opp_side.w_opp_side -> AffineSubspace.SOppSide.wOppSide is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.SOppSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.WOppSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y)
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.SOppSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.WOppSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y)
-Case conversion may be inaccurate. Consider using '#align affine_subspace.s_opp_side.w_opp_side AffineSubspace.SOppSide.wOppSideₓ'. -/
theorem SOppSide.wOppSide {s : AffineSubspace R P} {x y : P} (h : s.SOppSide x y) :
s.WOppSide x y :=
h.1
#align affine_subspace.s_opp_side.w_opp_side AffineSubspace.SOppSide.wOppSide
-/- warning: affine_subspace.s_opp_side.left_not_mem -> AffineSubspace.SOppSide.left_not_mem is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.SOppSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) -> (Not (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)) x s))
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.SOppSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) -> (Not (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4)) x s))
-Case conversion may be inaccurate. Consider using '#align affine_subspace.s_opp_side.left_not_mem AffineSubspace.SOppSide.left_not_memₓ'. -/
theorem SOppSide.left_not_mem {s : AffineSubspace R P} {x y : P} (h : s.SOppSide x y) : x ∉ s :=
h.2.1
#align affine_subspace.s_opp_side.left_not_mem AffineSubspace.SOppSide.left_not_mem
-/- warning: affine_subspace.s_opp_side.right_not_mem -> AffineSubspace.SOppSide.right_not_mem is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.SOppSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) -> (Not (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)) y s))
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.SOppSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) -> (Not (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4)) y s))
-Case conversion may be inaccurate. Consider using '#align affine_subspace.s_opp_side.right_not_mem AffineSubspace.SOppSide.right_not_memₓ'. -/
theorem SOppSide.right_not_mem {s : AffineSubspace R P} {x y : P} (h : s.SOppSide x y) : y ∉ s :=
h.2.2
#align affine_subspace.s_opp_side.right_not_mem AffineSubspace.SOppSide.right_not_mem
-/- warning: affine_subspace.w_same_side_comm -> AffineSubspace.wSameSide_comm is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, Iff (AffineSubspace.WSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) (AffineSubspace.WSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s y x)
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, Iff (AffineSubspace.WSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) (AffineSubspace.WSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s y x)
-Case conversion may be inaccurate. Consider using '#align affine_subspace.w_same_side_comm AffineSubspace.wSameSide_commₓ'. -/
theorem wSameSide_comm {s : AffineSubspace R P} {x y : P} : s.WSameSide x y ↔ s.WSameSide y x :=
⟨fun ⟨p₁, hp₁, p₂, hp₂, h⟩ => ⟨p₂, hp₂, p₁, hp₁, h.symm⟩, fun ⟨p₁, hp₁, p₂, hp₂, h⟩ =>
⟨p₂, hp₂, p₁, hp₁, h.symm⟩⟩
#align affine_subspace.w_same_side_comm AffineSubspace.wSameSide_comm
-/- warning: affine_subspace.w_same_side.symm -> AffineSubspace.WSameSide.symm is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.WSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.WSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s y x)
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.WSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.WSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s y x)
-Case conversion may be inaccurate. Consider using '#align affine_subspace.w_same_side.symm AffineSubspace.WSameSide.symmₓ'. -/
alias w_same_side_comm ↔ w_same_side.symm _
#align affine_subspace.w_same_side.symm AffineSubspace.WSameSide.symm
-/- warning: affine_subspace.s_same_side_comm -> AffineSubspace.sSameSide_comm is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, Iff (AffineSubspace.SSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) (AffineSubspace.SSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s y x)
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, Iff (AffineSubspace.SSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) (AffineSubspace.SSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s y x)
-Case conversion may be inaccurate. Consider using '#align affine_subspace.s_same_side_comm AffineSubspace.sSameSide_commₓ'. -/
theorem sSameSide_comm {s : AffineSubspace R P} {x y : P} : s.SSameSide x y ↔ s.SSameSide y x := by
rw [s_same_side, s_same_side, w_same_side_comm, and_comm' (x ∉ s)]
#align affine_subspace.s_same_side_comm AffineSubspace.sSameSide_comm
-/- warning: affine_subspace.s_same_side.symm -> AffineSubspace.SSameSide.symm is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.SSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.SSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s y x)
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.SSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.SSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s y x)
-Case conversion may be inaccurate. Consider using '#align affine_subspace.s_same_side.symm AffineSubspace.SSameSide.symmₓ'. -/
alias s_same_side_comm ↔ s_same_side.symm _
#align affine_subspace.s_same_side.symm AffineSubspace.SSameSide.symm
-/- warning: affine_subspace.w_opp_side_comm -> AffineSubspace.wOppSide_comm is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, Iff (AffineSubspace.WOppSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) (AffineSubspace.WOppSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s y x)
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, Iff (AffineSubspace.WOppSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) (AffineSubspace.WOppSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s y x)
-Case conversion may be inaccurate. Consider using '#align affine_subspace.w_opp_side_comm AffineSubspace.wOppSide_commₓ'. -/
theorem wOppSide_comm {s : AffineSubspace R P} {x y : P} : s.WOppSide x y ↔ s.WOppSide y x :=
by
constructor
@@ -352,149 +232,65 @@ theorem wOppSide_comm {s : AffineSubspace R P} {x y : P} : s.WOppSide x y ↔ s.
rwa [SameRay.sameRay_comm, ← sameRay_neg_iff, neg_vsub_eq_vsub_rev, neg_vsub_eq_vsub_rev]
#align affine_subspace.w_opp_side_comm AffineSubspace.wOppSide_comm
-/- warning: affine_subspace.w_opp_side.symm -> AffineSubspace.WOppSide.symm is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.WOppSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.WOppSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s y x)
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.WOppSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.WOppSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s y x)
-Case conversion may be inaccurate. Consider using '#align affine_subspace.w_opp_side.symm AffineSubspace.WOppSide.symmₓ'. -/
alias w_opp_side_comm ↔ w_opp_side.symm _
#align affine_subspace.w_opp_side.symm AffineSubspace.WOppSide.symm
-/- warning: affine_subspace.s_opp_side_comm -> AffineSubspace.sOppSide_comm is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, Iff (AffineSubspace.SOppSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) (AffineSubspace.SOppSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s y x)
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, Iff (AffineSubspace.SOppSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) (AffineSubspace.SOppSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s y x)
-Case conversion may be inaccurate. Consider using '#align affine_subspace.s_opp_side_comm AffineSubspace.sOppSide_commₓ'. -/
theorem sOppSide_comm {s : AffineSubspace R P} {x y : P} : s.SOppSide x y ↔ s.SOppSide y x := by
rw [s_opp_side, s_opp_side, w_opp_side_comm, and_comm' (x ∉ s)]
#align affine_subspace.s_opp_side_comm AffineSubspace.sOppSide_comm
-/- warning: affine_subspace.s_opp_side.symm -> AffineSubspace.SOppSide.symm is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.SOppSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.SOppSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s y x)
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.SOppSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.SOppSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s y x)
-Case conversion may be inaccurate. Consider using '#align affine_subspace.s_opp_side.symm AffineSubspace.SOppSide.symmₓ'. -/
alias s_opp_side_comm ↔ s_opp_side.symm _
#align affine_subspace.s_opp_side.symm AffineSubspace.SOppSide.symm
-/- warning: affine_subspace.not_w_same_side_bot -> AffineSubspace.not_wSameSide_bot is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] (x : P) (y : P), Not (AffineSubspace.WSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 (Bot.bot.{u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (CompleteLattice.toHasBot.{u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (AffineSubspace.completeLattice.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4))) x y)
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] (x : P) (y : P), Not (AffineSubspace.WSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 (Bot.bot.{u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (CompleteLattice.toBot.{u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (AffineSubspace.instCompleteLatticeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4))) x y)
-Case conversion may be inaccurate. Consider using '#align affine_subspace.not_w_same_side_bot AffineSubspace.not_wSameSide_botₓ'. -/
theorem not_wSameSide_bot (x y : P) : ¬(⊥ : AffineSubspace R P).WSameSide x y := by
simp [w_same_side, not_mem_bot]
#align affine_subspace.not_w_same_side_bot AffineSubspace.not_wSameSide_bot
-/- warning: affine_subspace.not_s_same_side_bot -> AffineSubspace.not_sSameSide_bot is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] (x : P) (y : P), Not (AffineSubspace.SSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 (Bot.bot.{u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (CompleteLattice.toHasBot.{u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (AffineSubspace.completeLattice.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4))) x y)
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] (x : P) (y : P), Not (AffineSubspace.SSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 (Bot.bot.{u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (CompleteLattice.toBot.{u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (AffineSubspace.instCompleteLatticeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4))) x y)
-Case conversion may be inaccurate. Consider using '#align affine_subspace.not_s_same_side_bot AffineSubspace.not_sSameSide_botₓ'. -/
theorem not_sSameSide_bot (x y : P) : ¬(⊥ : AffineSubspace R P).SSameSide x y := fun h =>
not_wSameSide_bot x y h.WSameSide
#align affine_subspace.not_s_same_side_bot AffineSubspace.not_sSameSide_bot
-/- warning: affine_subspace.not_w_opp_side_bot -> AffineSubspace.not_wOppSide_bot is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] (x : P) (y : P), Not (AffineSubspace.WOppSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 (Bot.bot.{u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (CompleteLattice.toHasBot.{u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (AffineSubspace.completeLattice.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4))) x y)
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] (x : P) (y : P), Not (AffineSubspace.WOppSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 (Bot.bot.{u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (CompleteLattice.toBot.{u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (AffineSubspace.instCompleteLatticeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4))) x y)
-Case conversion may be inaccurate. Consider using '#align affine_subspace.not_w_opp_side_bot AffineSubspace.not_wOppSide_botₓ'. -/
theorem not_wOppSide_bot (x y : P) : ¬(⊥ : AffineSubspace R P).WOppSide x y := by
simp [w_opp_side, not_mem_bot]
#align affine_subspace.not_w_opp_side_bot AffineSubspace.not_wOppSide_bot
-/- warning: affine_subspace.not_s_opp_side_bot -> AffineSubspace.not_sOppSide_bot is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] (x : P) (y : P), Not (AffineSubspace.SOppSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 (Bot.bot.{u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (CompleteLattice.toHasBot.{u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (AffineSubspace.completeLattice.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4))) x y)
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] (x : P) (y : P), Not (AffineSubspace.SOppSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 (Bot.bot.{u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (CompleteLattice.toBot.{u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (AffineSubspace.instCompleteLatticeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4))) x y)
-Case conversion may be inaccurate. Consider using '#align affine_subspace.not_s_opp_side_bot AffineSubspace.not_sOppSide_botₓ'. -/
theorem not_sOppSide_bot (x y : P) : ¬(⊥ : AffineSubspace R P).SOppSide x y := fun h =>
not_wOppSide_bot x y h.WOppSide
#align affine_subspace.not_s_opp_side_bot AffineSubspace.not_sOppSide_bot
-/- warning: affine_subspace.w_same_side_self_iff -> AffineSubspace.wSameSide_self_iff is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P}, Iff (AffineSubspace.WSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x x) (Set.Nonempty.{u3} P ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (Set.{u3} P) (HasLiftT.mk.{succ u3, succ u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (Set.{u3} P) (CoeTCₓ.coe.{succ u3, succ u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (Set.{u3} P) (SetLike.Set.hasCoeT.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)))) s))
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P}, Iff (AffineSubspace.WSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x x) (Set.Nonempty.{u1} P (SetLike.coe.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) s))
-Case conversion may be inaccurate. Consider using '#align affine_subspace.w_same_side_self_iff AffineSubspace.wSameSide_self_iffₓ'. -/
@[simp]
theorem wSameSide_self_iff {s : AffineSubspace R P} {x : P} :
s.WSameSide x x ↔ (s : Set P).Nonempty :=
⟨fun h => h.Nonempty, fun ⟨p, hp⟩ => ⟨p, hp, p, hp, SameRay.rfl⟩⟩
#align affine_subspace.w_same_side_self_iff AffineSubspace.wSameSide_self_iff
-/- warning: affine_subspace.s_same_side_self_iff -> AffineSubspace.sSameSide_self_iff is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P}, Iff (AffineSubspace.SSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x x) (And (Set.Nonempty.{u3} P ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (Set.{u3} P) (HasLiftT.mk.{succ u3, succ u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (Set.{u3} P) (CoeTCₓ.coe.{succ u3, succ u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (Set.{u3} P) (SetLike.Set.hasCoeT.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)))) s)) (Not (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)) x s)))
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P}, Iff (AffineSubspace.SSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x x) (And (Set.Nonempty.{u1} P (SetLike.coe.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) s)) (Not (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4)) x s)))
-Case conversion may be inaccurate. Consider using '#align affine_subspace.s_same_side_self_iff AffineSubspace.sSameSide_self_iffₓ'. -/
theorem sSameSide_self_iff {s : AffineSubspace R P} {x : P} :
s.SSameSide x x ↔ (s : Set P).Nonempty ∧ x ∉ s :=
⟨fun ⟨h, hx, _⟩ => ⟨wSameSide_self_iff.1 h, hx⟩, fun ⟨h, hx⟩ => ⟨wSameSide_self_iff.2 h, hx, hx⟩⟩
#align affine_subspace.s_same_side_self_iff AffineSubspace.sSameSide_self_iff
-/- warning: affine_subspace.w_same_side_of_left_mem -> AffineSubspace.wSameSide_of_left_mem is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} (y : P), (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)) x s) -> (AffineSubspace.WSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y)
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} (y : P), (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4)) x s) -> (AffineSubspace.WSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y)
-Case conversion may be inaccurate. Consider using '#align affine_subspace.w_same_side_of_left_mem AffineSubspace.wSameSide_of_left_memₓ'. -/
theorem wSameSide_of_left_mem {s : AffineSubspace R P} {x : P} (y : P) (hx : x ∈ s) :
s.WSameSide x y := by
refine' ⟨x, hx, x, hx, _⟩
simp
#align affine_subspace.w_same_side_of_left_mem AffineSubspace.wSameSide_of_left_mem
-/- warning: affine_subspace.w_same_side_of_right_mem -> AffineSubspace.wSameSide_of_right_mem is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} (x : P) {y : P}, (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)) y s) -> (AffineSubspace.WSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y)
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} (x : P) {y : P}, (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4)) y s) -> (AffineSubspace.WSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y)
-Case conversion may be inaccurate. Consider using '#align affine_subspace.w_same_side_of_right_mem AffineSubspace.wSameSide_of_right_memₓ'. -/
theorem wSameSide_of_right_mem {s : AffineSubspace R P} (x : P) {y : P} (hy : y ∈ s) :
s.WSameSide x y :=
(wSameSide_of_left_mem x hy).symm
#align affine_subspace.w_same_side_of_right_mem AffineSubspace.wSameSide_of_right_mem
-/- warning: affine_subspace.w_opp_side_of_left_mem -> AffineSubspace.wOppSide_of_left_mem is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} (y : P), (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)) x s) -> (AffineSubspace.WOppSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y)
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} (y : P), (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4)) x s) -> (AffineSubspace.WOppSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y)
-Case conversion may be inaccurate. Consider using '#align affine_subspace.w_opp_side_of_left_mem AffineSubspace.wOppSide_of_left_memₓ'. -/
theorem wOppSide_of_left_mem {s : AffineSubspace R P} {x : P} (y : P) (hx : x ∈ s) :
s.WOppSide x y := by
refine' ⟨x, hx, x, hx, _⟩
simp
#align affine_subspace.w_opp_side_of_left_mem AffineSubspace.wOppSide_of_left_mem
-/- warning: affine_subspace.w_opp_side_of_right_mem -> AffineSubspace.wOppSide_of_right_mem is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} (x : P) {y : P}, (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)) y s) -> (AffineSubspace.WOppSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y)
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} (x : P) {y : P}, (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4)) y s) -> (AffineSubspace.WOppSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y)
-Case conversion may be inaccurate. Consider using '#align affine_subspace.w_opp_side_of_right_mem AffineSubspace.wOppSide_of_right_memₓ'. -/
theorem wOppSide_of_right_mem {s : AffineSubspace R P} (x : P) {y : P} (hy : y ∈ s) :
s.WOppSide x y :=
(wOppSide_of_left_mem x hy).symm
#align affine_subspace.w_opp_side_of_right_mem AffineSubspace.wOppSide_of_right_mem
-/- warning: affine_subspace.w_same_side_vadd_left_iff -> AffineSubspace.wSameSide_vadd_left_iff is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {v : V}, (Membership.Mem.{u2, u2} V (Submodule.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3) (SetLike.hasMem.{u2, u2} (Submodule.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3) V (Submodule.setLike.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3)) v (AffineSubspace.direction.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s)) -> (Iff (AffineSubspace.WSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s (VAdd.vadd.{u2, u3} V P (AddAction.toHasVadd.{u2, u3} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4)) v x) y) (AffineSubspace.WSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y))
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {v : V}, (Membership.mem.{u2, u2} V (Submodule.{u3, u2} R V (Ring.toSemiring.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3) (SetLike.instMembership.{u2, u2} (Submodule.{u3, u2} R V (Ring.toSemiring.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3) V (Submodule.setLike.{u3, u2} R V (Ring.toSemiring.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3)) v (AffineSubspace.direction.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s)) -> (Iff (AffineSubspace.WSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s (HVAdd.hVAdd.{u2, u1, u1} V P P (instHVAdd.{u2, u1} V P (AddAction.toVAdd.{u2, u1} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4))) v x) y) (AffineSubspace.WSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y))
-Case conversion may be inaccurate. Consider using '#align affine_subspace.w_same_side_vadd_left_iff AffineSubspace.wSameSide_vadd_left_iffₓ'. -/
theorem wSameSide_vadd_left_iff {s : AffineSubspace R P} {x y : P} {v : V} (hv : v ∈ s.direction) :
s.WSameSide (v +ᵥ x) y ↔ s.WSameSide x y :=
by
@@ -508,45 +304,21 @@ theorem wSameSide_vadd_left_iff {s : AffineSubspace R P} {x y : P} {v : V} (hv :
rwa [vadd_vsub_vadd_cancel_left]
#align affine_subspace.w_same_side_vadd_left_iff AffineSubspace.wSameSide_vadd_left_iff
-/- warning: affine_subspace.w_same_side_vadd_right_iff -> AffineSubspace.wSameSide_vadd_right_iff is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {v : V}, (Membership.Mem.{u2, u2} V (Submodule.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3) (SetLike.hasMem.{u2, u2} (Submodule.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3) V (Submodule.setLike.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3)) v (AffineSubspace.direction.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s)) -> (Iff (AffineSubspace.WSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x (VAdd.vadd.{u2, u3} V P (AddAction.toHasVadd.{u2, u3} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4)) v y)) (AffineSubspace.WSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y))
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {v : V}, (Membership.mem.{u2, u2} V (Submodule.{u3, u2} R V (Ring.toSemiring.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3) (SetLike.instMembership.{u2, u2} (Submodule.{u3, u2} R V (Ring.toSemiring.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3) V (Submodule.setLike.{u3, u2} R V (Ring.toSemiring.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3)) v (AffineSubspace.direction.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s)) -> (Iff (AffineSubspace.WSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x (HVAdd.hVAdd.{u2, u1, u1} V P P (instHVAdd.{u2, u1} V P (AddAction.toVAdd.{u2, u1} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4))) v y)) (AffineSubspace.WSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y))
-Case conversion may be inaccurate. Consider using '#align affine_subspace.w_same_side_vadd_right_iff AffineSubspace.wSameSide_vadd_right_iffₓ'. -/
theorem wSameSide_vadd_right_iff {s : AffineSubspace R P} {x y : P} {v : V} (hv : v ∈ s.direction) :
s.WSameSide x (v +ᵥ y) ↔ s.WSameSide x y := by
rw [w_same_side_comm, w_same_side_vadd_left_iff hv, w_same_side_comm]
#align affine_subspace.w_same_side_vadd_right_iff AffineSubspace.wSameSide_vadd_right_iff
-/- warning: affine_subspace.s_same_side_vadd_left_iff -> AffineSubspace.sSameSide_vadd_left_iff is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {v : V}, (Membership.Mem.{u2, u2} V (Submodule.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3) (SetLike.hasMem.{u2, u2} (Submodule.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3) V (Submodule.setLike.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3)) v (AffineSubspace.direction.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s)) -> (Iff (AffineSubspace.SSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s (VAdd.vadd.{u2, u3} V P (AddAction.toHasVadd.{u2, u3} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4)) v x) y) (AffineSubspace.SSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y))
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {v : V}, (Membership.mem.{u2, u2} V (Submodule.{u3, u2} R V (Ring.toSemiring.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3) (SetLike.instMembership.{u2, u2} (Submodule.{u3, u2} R V (Ring.toSemiring.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3) V (Submodule.setLike.{u3, u2} R V (Ring.toSemiring.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3)) v (AffineSubspace.direction.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s)) -> (Iff (AffineSubspace.SSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s (HVAdd.hVAdd.{u2, u1, u1} V P P (instHVAdd.{u2, u1} V P (AddAction.toVAdd.{u2, u1} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4))) v x) y) (AffineSubspace.SSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y))
-Case conversion may be inaccurate. Consider using '#align affine_subspace.s_same_side_vadd_left_iff AffineSubspace.sSameSide_vadd_left_iffₓ'. -/
theorem sSameSide_vadd_left_iff {s : AffineSubspace R P} {x y : P} {v : V} (hv : v ∈ s.direction) :
s.SSameSide (v +ᵥ x) y ↔ s.SSameSide x y := by
rw [s_same_side, s_same_side, w_same_side_vadd_left_iff hv, vadd_mem_iff_mem_of_mem_direction hv]
#align affine_subspace.s_same_side_vadd_left_iff AffineSubspace.sSameSide_vadd_left_iff
-/- warning: affine_subspace.s_same_side_vadd_right_iff -> AffineSubspace.sSameSide_vadd_right_iff is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {v : V}, (Membership.Mem.{u2, u2} V (Submodule.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3) (SetLike.hasMem.{u2, u2} (Submodule.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3) V (Submodule.setLike.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3)) v (AffineSubspace.direction.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s)) -> (Iff (AffineSubspace.SSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x (VAdd.vadd.{u2, u3} V P (AddAction.toHasVadd.{u2, u3} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4)) v y)) (AffineSubspace.SSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y))
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {v : V}, (Membership.mem.{u2, u2} V (Submodule.{u3, u2} R V (Ring.toSemiring.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3) (SetLike.instMembership.{u2, u2} (Submodule.{u3, u2} R V (Ring.toSemiring.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3) V (Submodule.setLike.{u3, u2} R V (Ring.toSemiring.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3)) v (AffineSubspace.direction.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s)) -> (Iff (AffineSubspace.SSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x (HVAdd.hVAdd.{u2, u1, u1} V P P (instHVAdd.{u2, u1} V P (AddAction.toVAdd.{u2, u1} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4))) v y)) (AffineSubspace.SSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y))
-Case conversion may be inaccurate. Consider using '#align affine_subspace.s_same_side_vadd_right_iff AffineSubspace.sSameSide_vadd_right_iffₓ'. -/
theorem sSameSide_vadd_right_iff {s : AffineSubspace R P} {x y : P} {v : V} (hv : v ∈ s.direction) :
s.SSameSide x (v +ᵥ y) ↔ s.SSameSide x y := by
rw [s_same_side_comm, s_same_side_vadd_left_iff hv, s_same_side_comm]
#align affine_subspace.s_same_side_vadd_right_iff AffineSubspace.sSameSide_vadd_right_iff
-/- warning: affine_subspace.w_opp_side_vadd_left_iff -> AffineSubspace.wOppSide_vadd_left_iff is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {v : V}, (Membership.Mem.{u2, u2} V (Submodule.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3) (SetLike.hasMem.{u2, u2} (Submodule.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3) V (Submodule.setLike.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3)) v (AffineSubspace.direction.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s)) -> (Iff (AffineSubspace.WOppSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s (VAdd.vadd.{u2, u3} V P (AddAction.toHasVadd.{u2, u3} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4)) v x) y) (AffineSubspace.WOppSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y))
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {v : V}, (Membership.mem.{u2, u2} V (Submodule.{u3, u2} R V (Ring.toSemiring.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3) (SetLike.instMembership.{u2, u2} (Submodule.{u3, u2} R V (Ring.toSemiring.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3) V (Submodule.setLike.{u3, u2} R V (Ring.toSemiring.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3)) v (AffineSubspace.direction.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s)) -> (Iff (AffineSubspace.WOppSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s (HVAdd.hVAdd.{u2, u1, u1} V P P (instHVAdd.{u2, u1} V P (AddAction.toVAdd.{u2, u1} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4))) v x) y) (AffineSubspace.WOppSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y))
-Case conversion may be inaccurate. Consider using '#align affine_subspace.w_opp_side_vadd_left_iff AffineSubspace.wOppSide_vadd_left_iffₓ'. -/
theorem wOppSide_vadd_left_iff {s : AffineSubspace R P} {x y : P} {v : V} (hv : v ∈ s.direction) :
s.WOppSide (v +ᵥ x) y ↔ s.WOppSide x y :=
by
@@ -560,42 +332,21 @@ theorem wOppSide_vadd_left_iff {s : AffineSubspace R P} {x y : P} {v : V} (hv :
rwa [vadd_vsub_vadd_cancel_left]
#align affine_subspace.w_opp_side_vadd_left_iff AffineSubspace.wOppSide_vadd_left_iff
-/- warning: affine_subspace.w_opp_side_vadd_right_iff -> AffineSubspace.wOppSide_vadd_right_iff is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {v : V}, (Membership.Mem.{u2, u2} V (Submodule.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3) (SetLike.hasMem.{u2, u2} (Submodule.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3) V (Submodule.setLike.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3)) v (AffineSubspace.direction.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s)) -> (Iff (AffineSubspace.WOppSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x (VAdd.vadd.{u2, u3} V P (AddAction.toHasVadd.{u2, u3} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4)) v y)) (AffineSubspace.WOppSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y))
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {v : V}, (Membership.mem.{u2, u2} V (Submodule.{u3, u2} R V (Ring.toSemiring.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3) (SetLike.instMembership.{u2, u2} (Submodule.{u3, u2} R V (Ring.toSemiring.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3) V (Submodule.setLike.{u3, u2} R V (Ring.toSemiring.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3)) v (AffineSubspace.direction.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s)) -> (Iff (AffineSubspace.WOppSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x (HVAdd.hVAdd.{u2, u1, u1} V P P (instHVAdd.{u2, u1} V P (AddAction.toVAdd.{u2, u1} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4))) v y)) (AffineSubspace.WOppSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y))
-Case conversion may be inaccurate. Consider using '#align affine_subspace.w_opp_side_vadd_right_iff AffineSubspace.wOppSide_vadd_right_iffₓ'. -/
theorem wOppSide_vadd_right_iff {s : AffineSubspace R P} {x y : P} {v : V} (hv : v ∈ s.direction) :
s.WOppSide x (v +ᵥ y) ↔ s.WOppSide x y := by
rw [w_opp_side_comm, w_opp_side_vadd_left_iff hv, w_opp_side_comm]
#align affine_subspace.w_opp_side_vadd_right_iff AffineSubspace.wOppSide_vadd_right_iff
-/- warning: affine_subspace.s_opp_side_vadd_left_iff -> AffineSubspace.sOppSide_vadd_left_iff is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {v : V}, (Membership.Mem.{u2, u2} V (Submodule.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3) (SetLike.hasMem.{u2, u2} (Submodule.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3) V (Submodule.setLike.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3)) v (AffineSubspace.direction.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s)) -> (Iff (AffineSubspace.SOppSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s (VAdd.vadd.{u2, u3} V P (AddAction.toHasVadd.{u2, u3} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4)) v x) y) (AffineSubspace.SOppSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y))
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {v : V}, (Membership.mem.{u2, u2} V (Submodule.{u3, u2} R V (Ring.toSemiring.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3) (SetLike.instMembership.{u2, u2} (Submodule.{u3, u2} R V (Ring.toSemiring.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3) V (Submodule.setLike.{u3, u2} R V (Ring.toSemiring.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3)) v (AffineSubspace.direction.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s)) -> (Iff (AffineSubspace.SOppSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s (HVAdd.hVAdd.{u2, u1, u1} V P P (instHVAdd.{u2, u1} V P (AddAction.toVAdd.{u2, u1} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4))) v x) y) (AffineSubspace.SOppSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y))
-Case conversion may be inaccurate. Consider using '#align affine_subspace.s_opp_side_vadd_left_iff AffineSubspace.sOppSide_vadd_left_iffₓ'. -/
theorem sOppSide_vadd_left_iff {s : AffineSubspace R P} {x y : P} {v : V} (hv : v ∈ s.direction) :
s.SOppSide (v +ᵥ x) y ↔ s.SOppSide x y := by
rw [s_opp_side, s_opp_side, w_opp_side_vadd_left_iff hv, vadd_mem_iff_mem_of_mem_direction hv]
#align affine_subspace.s_opp_side_vadd_left_iff AffineSubspace.sOppSide_vadd_left_iff
-/- warning: affine_subspace.s_opp_side_vadd_right_iff -> AffineSubspace.sOppSide_vadd_right_iff is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {v : V}, (Membership.Mem.{u2, u2} V (Submodule.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3) (SetLike.hasMem.{u2, u2} (Submodule.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3) V (Submodule.setLike.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3)) v (AffineSubspace.direction.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s)) -> (Iff (AffineSubspace.SOppSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x (VAdd.vadd.{u2, u3} V P (AddAction.toHasVadd.{u2, u3} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4)) v y)) (AffineSubspace.SOppSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y))
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {v : V}, (Membership.mem.{u2, u2} V (Submodule.{u3, u2} R V (Ring.toSemiring.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3) (SetLike.instMembership.{u2, u2} (Submodule.{u3, u2} R V (Ring.toSemiring.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3) V (Submodule.setLike.{u3, u2} R V (Ring.toSemiring.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3)) v (AffineSubspace.direction.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s)) -> (Iff (AffineSubspace.SOppSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x (HVAdd.hVAdd.{u2, u1, u1} V P P (instHVAdd.{u2, u1} V P (AddAction.toVAdd.{u2, u1} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4))) v y)) (AffineSubspace.SOppSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y))
-Case conversion may be inaccurate. Consider using '#align affine_subspace.s_opp_side_vadd_right_iff AffineSubspace.sOppSide_vadd_right_iffₓ'. -/
theorem sOppSide_vadd_right_iff {s : AffineSubspace R P} {x y : P} {v : V} (hv : v ∈ s.direction) :
s.SOppSide x (v +ᵥ y) ↔ s.SOppSide x y := by
rw [s_opp_side_comm, s_opp_side_vadd_left_iff hv, s_opp_side_comm]
#align affine_subspace.s_opp_side_vadd_right_iff AffineSubspace.sOppSide_vadd_right_iff
-/- warning: affine_subspace.w_same_side_smul_vsub_vadd_left -> AffineSubspace.wSameSide_smul_vsub_vadd_left is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align affine_subspace.w_same_side_smul_vsub_vadd_left AffineSubspace.wSameSide_smul_vsub_vadd_leftₓ'. -/
theorem wSameSide_smul_vsub_vadd_left {s : AffineSubspace R P} {p₁ p₂ : P} (x : P) (hp₁ : p₁ ∈ s)
(hp₂ : p₂ ∈ s) {t : R} (ht : 0 ≤ t) : s.WSameSide (t • (x -ᵥ p₁) +ᵥ p₂) x :=
by
@@ -604,33 +355,21 @@ theorem wSameSide_smul_vsub_vadd_left {s : AffineSubspace R P} {p₁ p₂ : P} (
exact SameRay.sameRay_nonneg_smul_left _ ht
#align affine_subspace.w_same_side_smul_vsub_vadd_left AffineSubspace.wSameSide_smul_vsub_vadd_left
-/- warning: affine_subspace.w_same_side_smul_vsub_vadd_right -> AffineSubspace.wSameSide_smul_vsub_vadd_right is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align affine_subspace.w_same_side_smul_vsub_vadd_right AffineSubspace.wSameSide_smul_vsub_vadd_rightₓ'. -/
theorem wSameSide_smul_vsub_vadd_right {s : AffineSubspace R P} {p₁ p₂ : P} (x : P) (hp₁ : p₁ ∈ s)
(hp₂ : p₂ ∈ s) {t : R} (ht : 0 ≤ t) : s.WSameSide x (t • (x -ᵥ p₁) +ᵥ p₂) :=
(wSameSide_smul_vsub_vadd_left x hp₁ hp₂ ht).symm
#align affine_subspace.w_same_side_smul_vsub_vadd_right AffineSubspace.wSameSide_smul_vsub_vadd_right
-/- warning: affine_subspace.w_same_side_line_map_left -> AffineSubspace.wSameSide_lineMap_left is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align affine_subspace.w_same_side_line_map_left AffineSubspace.wSameSide_lineMap_leftₓ'. -/
theorem wSameSide_lineMap_left {s : AffineSubspace R P} {x : P} (y : P) (h : x ∈ s) {t : R}
(ht : 0 ≤ t) : s.WSameSide (lineMap x y t) y :=
wSameSide_smul_vsub_vadd_left y h h ht
#align affine_subspace.w_same_side_line_map_left AffineSubspace.wSameSide_lineMap_left
-/- warning: affine_subspace.w_same_side_line_map_right -> AffineSubspace.wSameSide_lineMap_right is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align affine_subspace.w_same_side_line_map_right AffineSubspace.wSameSide_lineMap_rightₓ'. -/
theorem wSameSide_lineMap_right {s : AffineSubspace R P} {x : P} (y : P) (h : x ∈ s) {t : R}
(ht : 0 ≤ t) : s.WSameSide y (lineMap x y t) :=
(wSameSide_lineMap_left y h ht).symm
#align affine_subspace.w_same_side_line_map_right AffineSubspace.wSameSide_lineMap_right
-/- warning: affine_subspace.w_opp_side_smul_vsub_vadd_left -> AffineSubspace.wOppSide_smul_vsub_vadd_left is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align affine_subspace.w_opp_side_smul_vsub_vadd_left AffineSubspace.wOppSide_smul_vsub_vadd_leftₓ'. -/
theorem wOppSide_smul_vsub_vadd_left {s : AffineSubspace R P} {p₁ p₂ : P} (x : P) (hp₁ : p₁ ∈ s)
(hp₂ : p₂ ∈ s) {t : R} (ht : t ≤ 0) : s.WOppSide (t • (x -ᵥ p₁) +ᵥ p₂) x :=
by
@@ -639,81 +378,42 @@ theorem wOppSide_smul_vsub_vadd_left {s : AffineSubspace R P} {p₁ p₂ : P} (x
exact SameRay.sameRay_nonneg_smul_left _ (neg_nonneg.2 ht)
#align affine_subspace.w_opp_side_smul_vsub_vadd_left AffineSubspace.wOppSide_smul_vsub_vadd_left
-/- warning: affine_subspace.w_opp_side_smul_vsub_vadd_right -> AffineSubspace.wOppSide_smul_vsub_vadd_right is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align affine_subspace.w_opp_side_smul_vsub_vadd_right AffineSubspace.wOppSide_smul_vsub_vadd_rightₓ'. -/
theorem wOppSide_smul_vsub_vadd_right {s : AffineSubspace R P} {p₁ p₂ : P} (x : P) (hp₁ : p₁ ∈ s)
(hp₂ : p₂ ∈ s) {t : R} (ht : t ≤ 0) : s.WOppSide x (t • (x -ᵥ p₁) +ᵥ p₂) :=
(wOppSide_smul_vsub_vadd_left x hp₁ hp₂ ht).symm
#align affine_subspace.w_opp_side_smul_vsub_vadd_right AffineSubspace.wOppSide_smul_vsub_vadd_right
-/- warning: affine_subspace.w_opp_side_line_map_left -> AffineSubspace.wOppSide_lineMap_left is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align affine_subspace.w_opp_side_line_map_left AffineSubspace.wOppSide_lineMap_leftₓ'. -/
theorem wOppSide_lineMap_left {s : AffineSubspace R P} {x : P} (y : P) (h : x ∈ s) {t : R}
(ht : t ≤ 0) : s.WOppSide (lineMap x y t) y :=
wOppSide_smul_vsub_vadd_left y h h ht
#align affine_subspace.w_opp_side_line_map_left AffineSubspace.wOppSide_lineMap_left
-/- warning: affine_subspace.w_opp_side_line_map_right -> AffineSubspace.wOppSide_lineMap_right is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align affine_subspace.w_opp_side_line_map_right AffineSubspace.wOppSide_lineMap_rightₓ'. -/
theorem wOppSide_lineMap_right {s : AffineSubspace R P} {x : P} (y : P) (h : x ∈ s) {t : R}
(ht : t ≤ 0) : s.WOppSide y (lineMap x y t) :=
(wOppSide_lineMap_left y h ht).symm
#align affine_subspace.w_opp_side_line_map_right AffineSubspace.wOppSide_lineMap_right
-/- warning: wbtw.w_same_side₂₃ -> Wbtw.wSameSide₂₃ is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (Wbtw.{u1, u2, u3} R V P (StrictOrderedRing.toOrderedRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 x y z) -> (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)) x s) -> (AffineSubspace.WSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s y z)
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (Wbtw.{u3, u2, u1} R V P (OrderedCommRing.toOrderedRing.{u3} R (StrictOrderedCommRing.toOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 x y z) -> (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4)) x s) -> (AffineSubspace.WSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s y z)
-Case conversion may be inaccurate. Consider using '#align wbtw.w_same_side₂₃ Wbtw.wSameSide₂₃ₓ'. -/
theorem Wbtw.wSameSide₂₃ {s : AffineSubspace R P} {x y z : P} (h : Wbtw R x y z) (hx : x ∈ s) :
s.WSameSide y z := by
rcases h with ⟨t, ⟨ht0, -⟩, rfl⟩
exact w_same_side_line_map_left z hx ht0
#align wbtw.w_same_side₂₃ Wbtw.wSameSide₂₃
-/- warning: wbtw.w_same_side₃₂ -> Wbtw.wSameSide₃₂ is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (Wbtw.{u1, u2, u3} R V P (StrictOrderedRing.toOrderedRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 x y z) -> (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)) x s) -> (AffineSubspace.WSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s z y)
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (Wbtw.{u3, u2, u1} R V P (OrderedCommRing.toOrderedRing.{u3} R (StrictOrderedCommRing.toOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 x y z) -> (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4)) x s) -> (AffineSubspace.WSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s z y)
-Case conversion may be inaccurate. Consider using '#align wbtw.w_same_side₃₂ Wbtw.wSameSide₃₂ₓ'. -/
theorem Wbtw.wSameSide₃₂ {s : AffineSubspace R P} {x y z : P} (h : Wbtw R x y z) (hx : x ∈ s) :
s.WSameSide z y :=
(h.wSameSide₂₃ hx).symm
#align wbtw.w_same_side₃₂ Wbtw.wSameSide₃₂
-/- warning: wbtw.w_same_side₁₂ -> Wbtw.wSameSide₁₂ is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (Wbtw.{u1, u2, u3} R V P (StrictOrderedRing.toOrderedRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 x y z) -> (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)) z s) -> (AffineSubspace.WSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y)
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (Wbtw.{u3, u2, u1} R V P (OrderedCommRing.toOrderedRing.{u3} R (StrictOrderedCommRing.toOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 x y z) -> (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4)) z s) -> (AffineSubspace.WSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y)
-Case conversion may be inaccurate. Consider using '#align wbtw.w_same_side₁₂ Wbtw.wSameSide₁₂ₓ'. -/
theorem Wbtw.wSameSide₁₂ {s : AffineSubspace R P} {x y z : P} (h : Wbtw R x y z) (hz : z ∈ s) :
s.WSameSide x y :=
h.symm.wSameSide₃₂ hz
#align wbtw.w_same_side₁₂ Wbtw.wSameSide₁₂
-/- warning: wbtw.w_same_side₂₁ -> Wbtw.wSameSide₂₁ is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (Wbtw.{u1, u2, u3} R V P (StrictOrderedRing.toOrderedRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 x y z) -> (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)) z s) -> (AffineSubspace.WSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s y x)
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (Wbtw.{u3, u2, u1} R V P (OrderedCommRing.toOrderedRing.{u3} R (StrictOrderedCommRing.toOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 x y z) -> (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4)) z s) -> (AffineSubspace.WSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s y x)
-Case conversion may be inaccurate. Consider using '#align wbtw.w_same_side₂₁ Wbtw.wSameSide₂₁ₓ'. -/
theorem Wbtw.wSameSide₂₁ {s : AffineSubspace R P} {x y z : P} (h : Wbtw R x y z) (hz : z ∈ s) :
s.WSameSide y x :=
h.symm.wSameSide₂₃ hz
#align wbtw.w_same_side₂₁ Wbtw.wSameSide₂₁
-/- warning: wbtw.w_opp_side₁₃ -> Wbtw.wOppSide₁₃ is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (Wbtw.{u1, u2, u3} R V P (StrictOrderedRing.toOrderedRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 x y z) -> (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)) y s) -> (AffineSubspace.WOppSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x z)
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (Wbtw.{u3, u2, u1} R V P (OrderedCommRing.toOrderedRing.{u3} R (StrictOrderedCommRing.toOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 x y z) -> (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4)) y s) -> (AffineSubspace.WOppSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x z)
-Case conversion may be inaccurate. Consider using '#align wbtw.w_opp_side₁₃ Wbtw.wOppSide₁₃ₓ'. -/
theorem Wbtw.wOppSide₁₃ {s : AffineSubspace R P} {x y z : P} (h : Wbtw R x y z) (hy : y ∈ s) :
s.WOppSide x z := by
rcases h with ⟨t, ⟨ht0, ht1⟩, rfl⟩
@@ -726,12 +426,6 @@ theorem Wbtw.wOppSide₁₃ {s : AffineSubspace R P} {x y z : P} (h : Wbtw R x y
ring_nf
#align wbtw.w_opp_side₁₃ Wbtw.wOppSide₁₃
-/- warning: wbtw.w_opp_side₃₁ -> Wbtw.wOppSide₃₁ is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (Wbtw.{u1, u2, u3} R V P (StrictOrderedRing.toOrderedRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 x y z) -> (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)) y s) -> (AffineSubspace.WOppSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s z x)
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (Wbtw.{u3, u2, u1} R V P (OrderedCommRing.toOrderedRing.{u3} R (StrictOrderedCommRing.toOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 x y z) -> (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4)) y s) -> (AffineSubspace.WOppSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s z x)
-Case conversion may be inaccurate. Consider using '#align wbtw.w_opp_side₃₁ Wbtw.wOppSide₃₁ₓ'. -/
theorem Wbtw.wOppSide₃₁ {s : AffineSubspace R P} {x y z : P} (h : Wbtw R x y z) (hy : y ∈ s) :
s.WOppSide z x :=
h.symm.wOppSide₁₃ hy
@@ -749,12 +443,6 @@ include V
variable {R}
-/- warning: affine_subspace.w_opp_side_self_iff -> AffineSubspace.wOppSide_self_iff is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P}, Iff (AffineSubspace.WOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x x) (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s)
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P}, Iff (AffineSubspace.WOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x x) (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s)
-Case conversion may be inaccurate. Consider using '#align affine_subspace.w_opp_side_self_iff AffineSubspace.wOppSide_self_iffₓ'. -/
@[simp]
theorem wOppSide_self_iff {s : AffineSubspace R P} {x : P} : s.WOppSide x x ↔ x ∈ s :=
by
@@ -767,18 +455,9 @@ theorem wOppSide_self_iff {s : AffineSubspace R P} {x : P} : s.WOppSide x x ↔
· exact fun h => ⟨x, h, x, h, SameRay.rfl⟩
#align affine_subspace.w_opp_side_self_iff AffineSubspace.wOppSide_self_iff
-/- warning: affine_subspace.not_s_opp_side_self -> AffineSubspace.not_sOppSide_self is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] (s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (x : P), Not (AffineSubspace.SOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x x)
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] (s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (x : P), Not (AffineSubspace.SOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x x)
-Case conversion may be inaccurate. Consider using '#align affine_subspace.not_s_opp_side_self AffineSubspace.not_sOppSide_selfₓ'. -/
theorem not_sOppSide_self (s : AffineSubspace R P) (x : P) : ¬s.SOppSide x x := by simp [s_opp_side]
#align affine_subspace.not_s_opp_side_self AffineSubspace.not_sOppSide_self
-/- warning: affine_subspace.w_same_side_iff_exists_left -> AffineSubspace.wSameSide_iff_exists_left is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align affine_subspace.w_same_side_iff_exists_left AffineSubspace.wSameSide_iff_exists_leftₓ'. -/
theorem wSameSide_iff_exists_left {s : AffineSubspace R P} {x y p₁ : P} (h : p₁ ∈ s) :
s.WSameSide x y ↔ x ∈ s ∨ ∃ p₂ ∈ s, SameRay R (x -ᵥ p₁) (y -ᵥ p₂) :=
by
@@ -801,9 +480,6 @@ theorem wSameSide_iff_exists_left {s : AffineSubspace R P} {x y p₁ : P} (h : p
· exact ⟨p₁, h, h'⟩
#align affine_subspace.w_same_side_iff_exists_left AffineSubspace.wSameSide_iff_exists_left
-/- warning: affine_subspace.w_same_side_iff_exists_right -> AffineSubspace.wSameSide_iff_exists_right is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align affine_subspace.w_same_side_iff_exists_right AffineSubspace.wSameSide_iff_exists_rightₓ'. -/
theorem wSameSide_iff_exists_right {s : AffineSubspace R P} {x y p₂ : P} (h : p₂ ∈ s) :
s.WSameSide x y ↔ y ∈ s ∨ ∃ p₁ ∈ s, SameRay R (x -ᵥ p₁) (y -ᵥ p₂) :=
by
@@ -811,9 +487,6 @@ theorem wSameSide_iff_exists_right {s : AffineSubspace R P} {x y p₂ : P} (h :
simp_rw [SameRay.sameRay_comm]
#align affine_subspace.w_same_side_iff_exists_right AffineSubspace.wSameSide_iff_exists_right
-/- warning: affine_subspace.s_same_side_iff_exists_left -> AffineSubspace.sSameSide_iff_exists_left is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align affine_subspace.s_same_side_iff_exists_left AffineSubspace.sSameSide_iff_exists_leftₓ'. -/
theorem sSameSide_iff_exists_left {s : AffineSubspace R P} {x y p₁ : P} (h : p₁ ∈ s) :
s.SSameSide x y ↔ x ∉ s ∧ y ∉ s ∧ ∃ p₂ ∈ s, SameRay R (x -ᵥ p₁) (y -ᵥ p₂) :=
by
@@ -822,9 +495,6 @@ theorem sSameSide_iff_exists_left {s : AffineSubspace R P} {x y p₁ : P} (h : p
rw [or_iff_right hx]
#align affine_subspace.s_same_side_iff_exists_left AffineSubspace.sSameSide_iff_exists_left
-/- warning: affine_subspace.s_same_side_iff_exists_right -> AffineSubspace.sSameSide_iff_exists_right is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align affine_subspace.s_same_side_iff_exists_right AffineSubspace.sSameSide_iff_exists_rightₓ'. -/
theorem sSameSide_iff_exists_right {s : AffineSubspace R P} {x y p₂ : P} (h : p₂ ∈ s) :
s.SSameSide x y ↔ x ∉ s ∧ y ∉ s ∧ ∃ p₁ ∈ s, SameRay R (x -ᵥ p₁) (y -ᵥ p₂) :=
by
@@ -832,9 +502,6 @@ theorem sSameSide_iff_exists_right {s : AffineSubspace R P} {x y p₂ : P} (h :
simp_rw [SameRay.sameRay_comm]
#align affine_subspace.s_same_side_iff_exists_right AffineSubspace.sSameSide_iff_exists_right
-/- warning: affine_subspace.w_opp_side_iff_exists_left -> AffineSubspace.wOppSide_iff_exists_left is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align affine_subspace.w_opp_side_iff_exists_left AffineSubspace.wOppSide_iff_exists_leftₓ'. -/
theorem wOppSide_iff_exists_left {s : AffineSubspace R P} {x y p₁ : P} (h : p₁ ∈ s) :
s.WOppSide x y ↔ x ∈ s ∨ ∃ p₂ ∈ s, SameRay R (x -ᵥ p₁) (p₂ -ᵥ y) :=
by
@@ -858,9 +525,6 @@ theorem wOppSide_iff_exists_left {s : AffineSubspace R P} {x y p₁ : P} (h : p
· exact ⟨p₁, h, h'⟩
#align affine_subspace.w_opp_side_iff_exists_left AffineSubspace.wOppSide_iff_exists_left
-/- warning: affine_subspace.w_opp_side_iff_exists_right -> AffineSubspace.wOppSide_iff_exists_right is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align affine_subspace.w_opp_side_iff_exists_right AffineSubspace.wOppSide_iff_exists_rightₓ'. -/
theorem wOppSide_iff_exists_right {s : AffineSubspace R P} {x y p₂ : P} (h : p₂ ∈ s) :
s.WOppSide x y ↔ y ∈ s ∨ ∃ p₁ ∈ s, SameRay R (x -ᵥ p₁) (p₂ -ᵥ y) :=
by
@@ -874,9 +538,6 @@ theorem wOppSide_iff_exists_right {s : AffineSubspace R P} {x y p₂ : P} (h : p
rwa [SameRay.sameRay_comm, ← sameRay_neg_iff, neg_vsub_eq_vsub_rev, neg_vsub_eq_vsub_rev]
#align affine_subspace.w_opp_side_iff_exists_right AffineSubspace.wOppSide_iff_exists_right
-/- warning: affine_subspace.s_opp_side_iff_exists_left -> AffineSubspace.sOppSide_iff_exists_left is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align affine_subspace.s_opp_side_iff_exists_left AffineSubspace.sOppSide_iff_exists_leftₓ'. -/
theorem sOppSide_iff_exists_left {s : AffineSubspace R P} {x y p₁ : P} (h : p₁ ∈ s) :
s.SOppSide x y ↔ x ∉ s ∧ y ∉ s ∧ ∃ p₂ ∈ s, SameRay R (x -ᵥ p₁) (p₂ -ᵥ y) :=
by
@@ -885,9 +546,6 @@ theorem sOppSide_iff_exists_left {s : AffineSubspace R P} {x y p₁ : P} (h : p
rw [or_iff_right hx]
#align affine_subspace.s_opp_side_iff_exists_left AffineSubspace.sOppSide_iff_exists_left
-/- warning: affine_subspace.s_opp_side_iff_exists_right -> AffineSubspace.sOppSide_iff_exists_right is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align affine_subspace.s_opp_side_iff_exists_right AffineSubspace.sOppSide_iff_exists_rightₓ'. -/
theorem sOppSide_iff_exists_right {s : AffineSubspace R P} {x y p₂ : P} (h : p₂ ∈ s) :
s.SOppSide x y ↔ x ∉ s ∧ y ∉ s ∧ ∃ p₁ ∈ s, SameRay R (x -ᵥ p₁) (p₂ -ᵥ y) :=
by
@@ -897,12 +555,6 @@ theorem sOppSide_iff_exists_right {s : AffineSubspace R P} {x y p₂ : P} (h : p
rw [or_iff_right hy]
#align affine_subspace.s_opp_side_iff_exists_right AffineSubspace.sOppSide_iff_exists_right
-/- warning: affine_subspace.w_same_side.trans -> AffineSubspace.WSameSide.trans is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (AffineSubspace.WSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.WSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s y z) -> (Not (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s)) -> (AffineSubspace.WSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (AffineSubspace.WSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.WSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s y z) -> (Not (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s)) -> (AffineSubspace.WSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
-Case conversion may be inaccurate. Consider using '#align affine_subspace.w_same_side.trans AffineSubspace.WSameSide.transₓ'. -/
theorem WSameSide.trans {s : AffineSubspace R P} {x y z : P} (hxy : s.WSameSide x y)
(hyz : s.WSameSide y z) (hy : y ∉ s) : s.WSameSide x z :=
by
@@ -915,23 +567,11 @@ theorem WSameSide.trans {s : AffineSubspace R P} {x y z : P} (hxy : s.WSameSide
exact hy (h.symm ▸ hp₂)
#align affine_subspace.w_same_side.trans AffineSubspace.WSameSide.trans
-/- warning: affine_subspace.w_same_side.trans_s_same_side -> AffineSubspace.WSameSide.trans_sSameSide is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (AffineSubspace.WSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.SSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s y z) -> (AffineSubspace.WSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (AffineSubspace.WSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.SSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s y z) -> (AffineSubspace.WSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
-Case conversion may be inaccurate. Consider using '#align affine_subspace.w_same_side.trans_s_same_side AffineSubspace.WSameSide.trans_sSameSideₓ'. -/
theorem WSameSide.trans_sSameSide {s : AffineSubspace R P} {x y z : P} (hxy : s.WSameSide x y)
(hyz : s.SSameSide y z) : s.WSameSide x z :=
hxy.trans hyz.1 hyz.2.1
#align affine_subspace.w_same_side.trans_s_same_side AffineSubspace.WSameSide.trans_sSameSide
-/- warning: affine_subspace.w_same_side.trans_w_opp_side -> AffineSubspace.WSameSide.trans_wOppSide is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (AffineSubspace.WSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.WOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s y z) -> (Not (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s)) -> (AffineSubspace.WOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (AffineSubspace.WSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.WOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s y z) -> (Not (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s)) -> (AffineSubspace.WOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
-Case conversion may be inaccurate. Consider using '#align affine_subspace.w_same_side.trans_w_opp_side AffineSubspace.WSameSide.trans_wOppSideₓ'. -/
theorem WSameSide.trans_wOppSide {s : AffineSubspace R P} {x y z : P} (hxy : s.WSameSide x y)
(hyz : s.WOppSide y z) (hy : y ∉ s) : s.WOppSide x z :=
by
@@ -944,89 +584,41 @@ theorem WSameSide.trans_wOppSide {s : AffineSubspace R P} {x y z : P} (hxy : s.W
exact hy (h.symm ▸ hp₂)
#align affine_subspace.w_same_side.trans_w_opp_side AffineSubspace.WSameSide.trans_wOppSide
-/- warning: affine_subspace.w_same_side.trans_s_opp_side -> AffineSubspace.WSameSide.trans_sOppSide is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (AffineSubspace.WSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.SOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s y z) -> (AffineSubspace.WOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (AffineSubspace.WSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.SOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s y z) -> (AffineSubspace.WOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
-Case conversion may be inaccurate. Consider using '#align affine_subspace.w_same_side.trans_s_opp_side AffineSubspace.WSameSide.trans_sOppSideₓ'. -/
theorem WSameSide.trans_sOppSide {s : AffineSubspace R P} {x y z : P} (hxy : s.WSameSide x y)
(hyz : s.SOppSide y z) : s.WOppSide x z :=
hxy.trans_wOppSide hyz.1 hyz.2.1
#align affine_subspace.w_same_side.trans_s_opp_side AffineSubspace.WSameSide.trans_sOppSide
-/- warning: affine_subspace.s_same_side.trans_w_same_side -> AffineSubspace.SSameSide.trans_wSameSide is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (AffineSubspace.SSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.WSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s y z) -> (AffineSubspace.WSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (AffineSubspace.SSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.WSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s y z) -> (AffineSubspace.WSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
-Case conversion may be inaccurate. Consider using '#align affine_subspace.s_same_side.trans_w_same_side AffineSubspace.SSameSide.trans_wSameSideₓ'. -/
theorem SSameSide.trans_wSameSide {s : AffineSubspace R P} {x y z : P} (hxy : s.SSameSide x y)
(hyz : s.WSameSide y z) : s.WSameSide x z :=
(hyz.symm.trans_sSameSide hxy.symm).symm
#align affine_subspace.s_same_side.trans_w_same_side AffineSubspace.SSameSide.trans_wSameSide
-/- warning: affine_subspace.s_same_side.trans -> AffineSubspace.SSameSide.trans is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (AffineSubspace.SSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.SSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s y z) -> (AffineSubspace.SSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (AffineSubspace.SSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.SSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s y z) -> (AffineSubspace.SSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
-Case conversion may be inaccurate. Consider using '#align affine_subspace.s_same_side.trans AffineSubspace.SSameSide.transₓ'. -/
theorem SSameSide.trans {s : AffineSubspace R P} {x y z : P} (hxy : s.SSameSide x y)
(hyz : s.SSameSide y z) : s.SSameSide x z :=
⟨hxy.WSameSide.trans_sSameSide hyz, hxy.2.1, hyz.2.2⟩
#align affine_subspace.s_same_side.trans AffineSubspace.SSameSide.trans
-/- warning: affine_subspace.s_same_side.trans_w_opp_side -> AffineSubspace.SSameSide.trans_wOppSide is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (AffineSubspace.SSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.WOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s y z) -> (AffineSubspace.WOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (AffineSubspace.SSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.WOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s y z) -> (AffineSubspace.WOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
-Case conversion may be inaccurate. Consider using '#align affine_subspace.s_same_side.trans_w_opp_side AffineSubspace.SSameSide.trans_wOppSideₓ'. -/
theorem SSameSide.trans_wOppSide {s : AffineSubspace R P} {x y z : P} (hxy : s.SSameSide x y)
(hyz : s.WOppSide y z) : s.WOppSide x z :=
hxy.WSameSide.trans_wOppSide hyz hxy.2.2
#align affine_subspace.s_same_side.trans_w_opp_side AffineSubspace.SSameSide.trans_wOppSide
-/- warning: affine_subspace.s_same_side.trans_s_opp_side -> AffineSubspace.SSameSide.trans_sOppSide is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (AffineSubspace.SSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.SOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s y z) -> (AffineSubspace.SOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (AffineSubspace.SSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.SOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s y z) -> (AffineSubspace.SOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
-Case conversion may be inaccurate. Consider using '#align affine_subspace.s_same_side.trans_s_opp_side AffineSubspace.SSameSide.trans_sOppSideₓ'. -/
theorem SSameSide.trans_sOppSide {s : AffineSubspace R P} {x y z : P} (hxy : s.SSameSide x y)
(hyz : s.SOppSide y z) : s.SOppSide x z :=
⟨hxy.trans_wOppSide hyz.1, hxy.2.1, hyz.2.2⟩
#align affine_subspace.s_same_side.trans_s_opp_side AffineSubspace.SSameSide.trans_sOppSide
-/- warning: affine_subspace.w_opp_side.trans_w_same_side -> AffineSubspace.WOppSide.trans_wSameSide is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (AffineSubspace.WOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.WSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s y z) -> (Not (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s)) -> (AffineSubspace.WOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (AffineSubspace.WOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.WSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s y z) -> (Not (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s)) -> (AffineSubspace.WOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
-Case conversion may be inaccurate. Consider using '#align affine_subspace.w_opp_side.trans_w_same_side AffineSubspace.WOppSide.trans_wSameSideₓ'. -/
theorem WOppSide.trans_wSameSide {s : AffineSubspace R P} {x y z : P} (hxy : s.WOppSide x y)
(hyz : s.WSameSide y z) (hy : y ∉ s) : s.WOppSide x z :=
(hyz.symm.trans_wOppSide hxy.symm hy).symm
#align affine_subspace.w_opp_side.trans_w_same_side AffineSubspace.WOppSide.trans_wSameSide
-/- warning: affine_subspace.w_opp_side.trans_s_same_side -> AffineSubspace.WOppSide.trans_sSameSide is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (AffineSubspace.WOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.SSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s y z) -> (AffineSubspace.WOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (AffineSubspace.WOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.SSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s y z) -> (AffineSubspace.WOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
-Case conversion may be inaccurate. Consider using '#align affine_subspace.w_opp_side.trans_s_same_side AffineSubspace.WOppSide.trans_sSameSideₓ'. -/
theorem WOppSide.trans_sSameSide {s : AffineSubspace R P} {x y z : P} (hxy : s.WOppSide x y)
(hyz : s.SSameSide y z) : s.WOppSide x z :=
hxy.trans_wSameSide hyz.1 hyz.2.1
#align affine_subspace.w_opp_side.trans_s_same_side AffineSubspace.WOppSide.trans_sSameSide
-/- warning: affine_subspace.w_opp_side.trans -> AffineSubspace.WOppSide.trans is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (AffineSubspace.WOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.WOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s y z) -> (Not (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s)) -> (AffineSubspace.WSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (AffineSubspace.WOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.WOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s y z) -> (Not (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s)) -> (AffineSubspace.WSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
-Case conversion may be inaccurate. Consider using '#align affine_subspace.w_opp_side.trans AffineSubspace.WOppSide.transₓ'. -/
theorem WOppSide.trans {s : AffineSubspace R P} {x y z : P} (hxy : s.WOppSide x y)
(hyz : s.WOppSide y z) (hy : y ∉ s) : s.WSameSide x z :=
by
@@ -1040,67 +632,31 @@ theorem WOppSide.trans {s : AffineSubspace R P} {x y z : P} (hxy : s.WOppSide x
exact hy (h ▸ hp₂)
#align affine_subspace.w_opp_side.trans AffineSubspace.WOppSide.trans
-/- warning: affine_subspace.w_opp_side.trans_s_opp_side -> AffineSubspace.WOppSide.trans_sOppSide is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (AffineSubspace.WOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.SOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s y z) -> (AffineSubspace.WSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (AffineSubspace.WOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.SOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s y z) -> (AffineSubspace.WSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
-Case conversion may be inaccurate. Consider using '#align affine_subspace.w_opp_side.trans_s_opp_side AffineSubspace.WOppSide.trans_sOppSideₓ'. -/
theorem WOppSide.trans_sOppSide {s : AffineSubspace R P} {x y z : P} (hxy : s.WOppSide x y)
(hyz : s.SOppSide y z) : s.WSameSide x z :=
hxy.trans hyz.1 hyz.2.1
#align affine_subspace.w_opp_side.trans_s_opp_side AffineSubspace.WOppSide.trans_sOppSide
-/- warning: affine_subspace.s_opp_side.trans_w_same_side -> AffineSubspace.SOppSide.trans_wSameSide is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (AffineSubspace.SOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.WSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s y z) -> (AffineSubspace.WOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (AffineSubspace.SOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.WSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s y z) -> (AffineSubspace.WOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
-Case conversion may be inaccurate. Consider using '#align affine_subspace.s_opp_side.trans_w_same_side AffineSubspace.SOppSide.trans_wSameSideₓ'. -/
theorem SOppSide.trans_wSameSide {s : AffineSubspace R P} {x y z : P} (hxy : s.SOppSide x y)
(hyz : s.WSameSide y z) : s.WOppSide x z :=
(hyz.symm.trans_sOppSide hxy.symm).symm
#align affine_subspace.s_opp_side.trans_w_same_side AffineSubspace.SOppSide.trans_wSameSide
-/- warning: affine_subspace.s_opp_side.trans_s_same_side -> AffineSubspace.SOppSide.trans_sSameSide is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (AffineSubspace.SOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.SSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s y z) -> (AffineSubspace.SOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (AffineSubspace.SOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.SSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s y z) -> (AffineSubspace.SOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
-Case conversion may be inaccurate. Consider using '#align affine_subspace.s_opp_side.trans_s_same_side AffineSubspace.SOppSide.trans_sSameSideₓ'. -/
theorem SOppSide.trans_sSameSide {s : AffineSubspace R P} {x y z : P} (hxy : s.SOppSide x y)
(hyz : s.SSameSide y z) : s.SOppSide x z :=
(hyz.symm.trans_sOppSide hxy.symm).symm
#align affine_subspace.s_opp_side.trans_s_same_side AffineSubspace.SOppSide.trans_sSameSide
-/- warning: affine_subspace.s_opp_side.trans_w_opp_side -> AffineSubspace.SOppSide.trans_wOppSide is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (AffineSubspace.SOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.WOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s y z) -> (AffineSubspace.WSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (AffineSubspace.SOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.WOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s y z) -> (AffineSubspace.WSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
-Case conversion may be inaccurate. Consider using '#align affine_subspace.s_opp_side.trans_w_opp_side AffineSubspace.SOppSide.trans_wOppSideₓ'. -/
theorem SOppSide.trans_wOppSide {s : AffineSubspace R P} {x y z : P} (hxy : s.SOppSide x y)
(hyz : s.WOppSide y z) : s.WSameSide x z :=
(hyz.symm.trans_sOppSide hxy.symm).symm
#align affine_subspace.s_opp_side.trans_w_opp_side AffineSubspace.SOppSide.trans_wOppSide
-/- warning: affine_subspace.s_opp_side.trans -> AffineSubspace.SOppSide.trans is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (AffineSubspace.SOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.SOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s y z) -> (AffineSubspace.SSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (AffineSubspace.SOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.SOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s y z) -> (AffineSubspace.SSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
-Case conversion may be inaccurate. Consider using '#align affine_subspace.s_opp_side.trans AffineSubspace.SOppSide.transₓ'. -/
theorem SOppSide.trans {s : AffineSubspace R P} {x y z : P} (hxy : s.SOppSide x y)
(hyz : s.SOppSide y z) : s.SSameSide x z :=
⟨hxy.trans_wOppSide hyz.1, hxy.2.1, hyz.2.2⟩
#align affine_subspace.s_opp_side.trans AffineSubspace.SOppSide.trans
-/- warning: affine_subspace.w_same_side_and_w_opp_side_iff -> AffineSubspace.wSameSide_and_wOppSide_iff is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, Iff (And (AffineSubspace.WSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) (AffineSubspace.WOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y)) (Or (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s) (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s))
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, Iff (And (AffineSubspace.WSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) (AffineSubspace.WOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y)) (Or (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s) (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s))
-Case conversion may be inaccurate. Consider using '#align affine_subspace.w_same_side_and_w_opp_side_iff AffineSubspace.wSameSide_and_wOppSide_iffₓ'. -/
theorem wSameSide_and_wOppSide_iff {s : AffineSubspace R P} {x y : P} :
s.WSameSide x y ∧ s.WOppSide x y ↔ x ∈ s ∨ y ∈ s :=
by
@@ -1115,12 +671,6 @@ theorem wSameSide_and_wOppSide_iff {s : AffineSubspace R P} {x y : P} :
· exact ⟨w_same_side_of_right_mem x h, w_opp_side_of_right_mem x h⟩
#align affine_subspace.w_same_side_and_w_opp_side_iff AffineSubspace.wSameSide_and_wOppSide_iff
-/- warning: affine_subspace.w_same_side.not_s_opp_side -> AffineSubspace.WSameSide.not_sOppSide is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.WSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (Not (AffineSubspace.SOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y))
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.WSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (Not (AffineSubspace.SOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y))
-Case conversion may be inaccurate. Consider using '#align affine_subspace.w_same_side.not_s_opp_side AffineSubspace.WSameSide.not_sOppSideₓ'. -/
theorem WSameSide.not_sOppSide {s : AffineSubspace R P} {x y : P} (h : s.WSameSide x y) :
¬s.SOppSide x y := by
intro ho
@@ -1130,12 +680,6 @@ theorem WSameSide.not_sOppSide {s : AffineSubspace R P} {x y : P} (h : s.WSameSi
· exact ho.2.2 hy
#align affine_subspace.w_same_side.not_s_opp_side AffineSubspace.WSameSide.not_sOppSide
-/- warning: affine_subspace.s_same_side.not_w_opp_side -> AffineSubspace.SSameSide.not_wOppSide is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.SSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (Not (AffineSubspace.WOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y))
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.SSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (Not (AffineSubspace.WOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y))
-Case conversion may be inaccurate. Consider using '#align affine_subspace.s_same_side.not_w_opp_side AffineSubspace.SSameSide.not_wOppSideₓ'. -/
theorem SSameSide.not_wOppSide {s : AffineSubspace R P} {x y : P} (h : s.SSameSide x y) :
¬s.WOppSide x y := by
intro ho
@@ -1145,52 +689,22 @@ theorem SSameSide.not_wOppSide {s : AffineSubspace R P} {x y : P} (h : s.SSameSi
· exact h.2.2 hy
#align affine_subspace.s_same_side.not_w_opp_side AffineSubspace.SSameSide.not_wOppSide
-/- warning: affine_subspace.s_same_side.not_s_opp_side -> AffineSubspace.SSameSide.not_sOppSide is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.SSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (Not (AffineSubspace.SOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y))
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.SSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (Not (AffineSubspace.SOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y))
-Case conversion may be inaccurate. Consider using '#align affine_subspace.s_same_side.not_s_opp_side AffineSubspace.SSameSide.not_sOppSideₓ'. -/
theorem SSameSide.not_sOppSide {s : AffineSubspace R P} {x y : P} (h : s.SSameSide x y) :
¬s.SOppSide x y := fun ho => h.not_wOppSide ho.1
#align affine_subspace.s_same_side.not_s_opp_side AffineSubspace.SSameSide.not_sOppSide
-/- warning: affine_subspace.w_opp_side.not_s_same_side -> AffineSubspace.WOppSide.not_sSameSide is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.WOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (Not (AffineSubspace.SSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y))
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.WOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (Not (AffineSubspace.SSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y))
-Case conversion may be inaccurate. Consider using '#align affine_subspace.w_opp_side.not_s_same_side AffineSubspace.WOppSide.not_sSameSideₓ'. -/
theorem WOppSide.not_sSameSide {s : AffineSubspace R P} {x y : P} (h : s.WOppSide x y) :
¬s.SSameSide x y := fun hs => hs.not_wOppSide h
#align affine_subspace.w_opp_side.not_s_same_side AffineSubspace.WOppSide.not_sSameSide
-/- warning: affine_subspace.s_opp_side.not_w_same_side -> AffineSubspace.SOppSide.not_wSameSide is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.SOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (Not (AffineSubspace.WSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y))
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.SOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (Not (AffineSubspace.WSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y))
-Case conversion may be inaccurate. Consider using '#align affine_subspace.s_opp_side.not_w_same_side AffineSubspace.SOppSide.not_wSameSideₓ'. -/
theorem SOppSide.not_wSameSide {s : AffineSubspace R P} {x y : P} (h : s.SOppSide x y) :
¬s.WSameSide x y := fun hs => hs.not_sOppSide h
#align affine_subspace.s_opp_side.not_w_same_side AffineSubspace.SOppSide.not_wSameSide
-/- warning: affine_subspace.s_opp_side.not_s_same_side -> AffineSubspace.SOppSide.not_sSameSide is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.SOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (Not (AffineSubspace.SSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y))
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.SOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (Not (AffineSubspace.SSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y))
-Case conversion may be inaccurate. Consider using '#align affine_subspace.s_opp_side.not_s_same_side AffineSubspace.SOppSide.not_sSameSideₓ'. -/
theorem SOppSide.not_sSameSide {s : AffineSubspace R P} {x y : P} (h : s.SOppSide x y) :
¬s.SSameSide x y := fun hs => h.not_wSameSide hs.1
#align affine_subspace.s_opp_side.not_s_same_side AffineSubspace.SOppSide.not_sSameSide
-/- warning: affine_subspace.w_opp_side_iff_exists_wbtw -> AffineSubspace.wOppSide_iff_exists_wbtw is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, Iff (AffineSubspace.WOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) (Exists.{succ u3} P (fun (p : P) => Exists.{0} (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p s) (fun (H : Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p s) => Wbtw.{u1, u2, u3} R V P (StrictOrderedRing.toOrderedRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)))) _inst_2 _inst_3 _inst_4 x p y)))
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, Iff (AffineSubspace.WOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) (Exists.{succ u1} P (fun (p : P) => And (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) p s) (Wbtw.{u3, u2, u1} R V P (OrderedCommRing.toOrderedRing.{u3} R (StrictOrderedCommRing.toOrderedCommRing.{u3} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)))) _inst_2 _inst_3 _inst_4 x p y)))
-Case conversion may be inaccurate. Consider using '#align affine_subspace.w_opp_side_iff_exists_wbtw AffineSubspace.wOppSide_iff_exists_wbtwₓ'. -/
theorem wOppSide_iff_exists_wbtw {s : AffineSubspace R P} {x y : P} :
s.WOppSide x y ↔ ∃ p ∈ s, Wbtw R x p y :=
by
@@ -1217,12 +731,6 @@ theorem wOppSide_iff_exists_wbtw {s : AffineSubspace R P} {x y : P} :
div_le_one_of_le (le_add_of_nonneg_left hr₁.le) (Left.add_pos hr₁ hr₂).le⟩
#align affine_subspace.w_opp_side_iff_exists_wbtw AffineSubspace.wOppSide_iff_exists_wbtw
-/- warning: affine_subspace.s_opp_side.exists_sbtw -> AffineSubspace.SOppSide.exists_sbtw is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.SOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (Exists.{succ u3} P (fun (p : P) => Exists.{0} (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p s) (fun (H : Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p s) => Sbtw.{u1, u2, u3} R V P (StrictOrderedRing.toOrderedRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)))) _inst_2 _inst_3 _inst_4 x p y)))
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.SOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (Exists.{succ u1} P (fun (p : P) => And (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) p s) (Sbtw.{u3, u2, u1} R V P (OrderedCommRing.toOrderedRing.{u3} R (StrictOrderedCommRing.toOrderedCommRing.{u3} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)))) _inst_2 _inst_3 _inst_4 x p y)))
-Case conversion may be inaccurate. Consider using '#align affine_subspace.s_opp_side.exists_sbtw AffineSubspace.SOppSide.exists_sbtwₓ'. -/
theorem SOppSide.exists_sbtw {s : AffineSubspace R P} {x y : P} (h : s.SOppSide x y) :
∃ p ∈ s, Sbtw R x p y :=
by
@@ -1234,12 +742,6 @@ theorem SOppSide.exists_sbtw {s : AffineSubspace R P} {x y : P} (h : s.SOppSide
exact h.2.2 hp
#align affine_subspace.s_opp_side.exists_sbtw AffineSubspace.SOppSide.exists_sbtw
-/- warning: sbtw.s_opp_side_of_not_mem_of_mem -> Sbtw.sOppSide_of_not_mem_of_mem is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (Sbtw.{u1, u2, u3} R V P (StrictOrderedRing.toOrderedRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)))) _inst_2 _inst_3 _inst_4 x y z) -> (Not (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s)) -> (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s) -> (AffineSubspace.SOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (Sbtw.{u3, u2, u1} R V P (OrderedCommRing.toOrderedRing.{u3} R (StrictOrderedCommRing.toOrderedCommRing.{u3} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)))) _inst_2 _inst_3 _inst_4 x y z) -> (Not (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s)) -> (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s) -> (AffineSubspace.SOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
-Case conversion may be inaccurate. Consider using '#align sbtw.s_opp_side_of_not_mem_of_mem Sbtw.sOppSide_of_not_mem_of_memₓ'. -/
theorem Sbtw.sOppSide_of_not_mem_of_mem {s : AffineSubspace R P} {x y z : P} (h : Sbtw R x y z)
(hx : x ∉ s) (hy : y ∈ s) : s.SOppSide x z :=
by
@@ -1253,9 +755,6 @@ theorem Sbtw.sOppSide_of_not_mem_of_mem {s : AffineSubspace R P} {x y z : P} (h
rwa [vadd_mem_iff_mem_of_mem_direction (Submodule.smul_mem _ _ hy')] at hy
#align sbtw.s_opp_side_of_not_mem_of_mem Sbtw.sOppSide_of_not_mem_of_mem
-/- warning: affine_subspace.s_same_side_smul_vsub_vadd_left -> AffineSubspace.sSameSide_smul_vsub_vadd_left is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align affine_subspace.s_same_side_smul_vsub_vadd_left AffineSubspace.sSameSide_smul_vsub_vadd_leftₓ'. -/
theorem sSameSide_smul_vsub_vadd_left {s : AffineSubspace R P} {x p₁ p₂ : P} (hx : x ∉ s)
(hp₁ : p₁ ∈ s) (hp₂ : p₂ ∈ s) {t : R} (ht : 0 < t) : s.SSameSide (t • (x -ᵥ p₁) +ᵥ p₂) x :=
by
@@ -1264,33 +763,21 @@ theorem sSameSide_smul_vsub_vadd_left {s : AffineSubspace R P} {x p₁ p₂ : P}
vsub_right_mem_direction_iff_mem hp₁] at h
#align affine_subspace.s_same_side_smul_vsub_vadd_left AffineSubspace.sSameSide_smul_vsub_vadd_left
-/- warning: affine_subspace.s_same_side_smul_vsub_vadd_right -> AffineSubspace.sSameSide_smul_vsub_vadd_right is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align affine_subspace.s_same_side_smul_vsub_vadd_right AffineSubspace.sSameSide_smul_vsub_vadd_rightₓ'. -/
theorem sSameSide_smul_vsub_vadd_right {s : AffineSubspace R P} {x p₁ p₂ : P} (hx : x ∉ s)
(hp₁ : p₁ ∈ s) (hp₂ : p₂ ∈ s) {t : R} (ht : 0 < t) : s.SSameSide x (t • (x -ᵥ p₁) +ᵥ p₂) :=
(sSameSide_smul_vsub_vadd_left hx hp₁ hp₂ ht).symm
#align affine_subspace.s_same_side_smul_vsub_vadd_right AffineSubspace.sSameSide_smul_vsub_vadd_right
-/- warning: affine_subspace.s_same_side_line_map_left -> AffineSubspace.sSameSide_lineMap_left is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align affine_subspace.s_same_side_line_map_left AffineSubspace.sSameSide_lineMap_leftₓ'. -/
theorem sSameSide_lineMap_left {s : AffineSubspace R P} {x y : P} (hx : x ∈ s) (hy : y ∉ s) {t : R}
(ht : 0 < t) : s.SSameSide (lineMap x y t) y :=
sSameSide_smul_vsub_vadd_left hy hx hx ht
#align affine_subspace.s_same_side_line_map_left AffineSubspace.sSameSide_lineMap_left
-/- warning: affine_subspace.s_same_side_line_map_right -> AffineSubspace.sSameSide_lineMap_right is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align affine_subspace.s_same_side_line_map_right AffineSubspace.sSameSide_lineMap_rightₓ'. -/
theorem sSameSide_lineMap_right {s : AffineSubspace R P} {x y : P} (hx : x ∈ s) (hy : y ∉ s) {t : R}
(ht : 0 < t) : s.SSameSide y (lineMap x y t) :=
(sSameSide_lineMap_left hx hy ht).symm
#align affine_subspace.s_same_side_line_map_right AffineSubspace.sSameSide_lineMap_right
-/- warning: affine_subspace.s_opp_side_smul_vsub_vadd_left -> AffineSubspace.sOppSide_smul_vsub_vadd_left is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align affine_subspace.s_opp_side_smul_vsub_vadd_left AffineSubspace.sOppSide_smul_vsub_vadd_leftₓ'. -/
theorem sOppSide_smul_vsub_vadd_left {s : AffineSubspace R P} {x p₁ p₂ : P} (hx : x ∉ s)
(hp₁ : p₁ ∈ s) (hp₂ : p₂ ∈ s) {t : R} (ht : t < 0) : s.SOppSide (t • (x -ᵥ p₁) +ᵥ p₂) x :=
by
@@ -1299,33 +786,21 @@ theorem sOppSide_smul_vsub_vadd_left {s : AffineSubspace R P} {x p₁ p₂ : P}
vsub_right_mem_direction_iff_mem hp₁] at h
#align affine_subspace.s_opp_side_smul_vsub_vadd_left AffineSubspace.sOppSide_smul_vsub_vadd_left
-/- warning: affine_subspace.s_opp_side_smul_vsub_vadd_right -> AffineSubspace.sOppSide_smul_vsub_vadd_right is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align affine_subspace.s_opp_side_smul_vsub_vadd_right AffineSubspace.sOppSide_smul_vsub_vadd_rightₓ'. -/
theorem sOppSide_smul_vsub_vadd_right {s : AffineSubspace R P} {x p₁ p₂ : P} (hx : x ∉ s)
(hp₁ : p₁ ∈ s) (hp₂ : p₂ ∈ s) {t : R} (ht : t < 0) : s.SOppSide x (t • (x -ᵥ p₁) +ᵥ p₂) :=
(sOppSide_smul_vsub_vadd_left hx hp₁ hp₂ ht).symm
#align affine_subspace.s_opp_side_smul_vsub_vadd_right AffineSubspace.sOppSide_smul_vsub_vadd_right
-/- warning: affine_subspace.s_opp_side_line_map_left -> AffineSubspace.sOppSide_lineMap_left is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align affine_subspace.s_opp_side_line_map_left AffineSubspace.sOppSide_lineMap_leftₓ'. -/
theorem sOppSide_lineMap_left {s : AffineSubspace R P} {x y : P} (hx : x ∈ s) (hy : y ∉ s) {t : R}
(ht : t < 0) : s.SOppSide (lineMap x y t) y :=
sOppSide_smul_vsub_vadd_left hy hx hx ht
#align affine_subspace.s_opp_side_line_map_left AffineSubspace.sOppSide_lineMap_left
-/- warning: affine_subspace.s_opp_side_line_map_right -> AffineSubspace.sOppSide_lineMap_right is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align affine_subspace.s_opp_side_line_map_right AffineSubspace.sOppSide_lineMap_rightₓ'. -/
theorem sOppSide_lineMap_right {s : AffineSubspace R P} {x y : P} (hx : x ∈ s) (hy : y ∉ s) {t : R}
(ht : t < 0) : s.SOppSide y (lineMap x y t) :=
(sOppSide_lineMap_left hx hy ht).symm
#align affine_subspace.s_opp_side_line_map_right AffineSubspace.sOppSide_lineMap_right
-/- warning: affine_subspace.set_of_w_same_side_eq_image2 -> AffineSubspace.setOf_wSameSide_eq_image2 is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align affine_subspace.set_of_w_same_side_eq_image2 AffineSubspace.setOf_wSameSide_eq_image2ₓ'. -/
theorem setOf_wSameSide_eq_image2 {s : AffineSubspace R P} {x p : P} (hx : x ∉ s) (hp : p ∈ s) :
{ y | s.WSameSide x y } = Set.image2 (fun (t : R) q => t • (x -ᵥ p) +ᵥ q) (Set.Ici 0) s :=
by
@@ -1346,9 +821,6 @@ theorem setOf_wSameSide_eq_image2 {s : AffineSubspace R P} {x p : P} (hx : x ∉
exact w_same_side_smul_vsub_vadd_right x hp hp' ht
#align affine_subspace.set_of_w_same_side_eq_image2 AffineSubspace.setOf_wSameSide_eq_image2
-/- warning: affine_subspace.set_of_s_same_side_eq_image2 -> AffineSubspace.setOf_sSameSide_eq_image2 is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align affine_subspace.set_of_s_same_side_eq_image2 AffineSubspace.setOf_sSameSide_eq_image2ₓ'. -/
theorem setOf_sSameSide_eq_image2 {s : AffineSubspace R P} {x p : P} (hx : x ∉ s) (hp : p ∈ s) :
{ y | s.SSameSide x y } = Set.image2 (fun (t : R) q => t • (x -ᵥ p) +ᵥ q) (Set.Ioi 0) s :=
by
@@ -1368,9 +840,6 @@ theorem setOf_sSameSide_eq_image2 {s : AffineSubspace R P} {x p : P} (hx : x ∉
exact s_same_side_smul_vsub_vadd_right hx hp hp' ht
#align affine_subspace.set_of_s_same_side_eq_image2 AffineSubspace.setOf_sSameSide_eq_image2
-/- warning: affine_subspace.set_of_w_opp_side_eq_image2 -> AffineSubspace.setOf_wOppSide_eq_image2 is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align affine_subspace.set_of_w_opp_side_eq_image2 AffineSubspace.setOf_wOppSide_eq_image2ₓ'. -/
theorem setOf_wOppSide_eq_image2 {s : AffineSubspace R P} {x p : P} (hx : x ∉ s) (hp : p ∈ s) :
{ y | s.WOppSide x y } = Set.image2 (fun (t : R) q => t • (x -ᵥ p) +ᵥ q) (Set.Iic 0) s :=
by
@@ -1391,9 +860,6 @@ theorem setOf_wOppSide_eq_image2 {s : AffineSubspace R P} {x p : P} (hx : x ∉
exact w_opp_side_smul_vsub_vadd_right x hp hp' ht
#align affine_subspace.set_of_w_opp_side_eq_image2 AffineSubspace.setOf_wOppSide_eq_image2
-/- warning: affine_subspace.set_of_s_opp_side_eq_image2 -> AffineSubspace.setOf_sOppSide_eq_image2 is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align affine_subspace.set_of_s_opp_side_eq_image2 AffineSubspace.setOf_sOppSide_eq_image2ₓ'. -/
theorem setOf_sOppSide_eq_image2 {s : AffineSubspace R P} {x p : P} (hx : x ∉ s) (hp : p ∈ s) :
{ y | s.SOppSide x y } = Set.image2 (fun (t : R) q => t • (x -ᵥ p) +ᵥ q) (Set.Iio 0) s :=
by
@@ -1413,17 +879,11 @@ theorem setOf_sOppSide_eq_image2 {s : AffineSubspace R P} {x p : P} (hx : x ∉
exact s_opp_side_smul_vsub_vadd_right hx hp hp' ht
#align affine_subspace.set_of_s_opp_side_eq_image2 AffineSubspace.setOf_sOppSide_eq_image2
-/- warning: affine_subspace.w_opp_side_point_reflection -> AffineSubspace.wOppSide_pointReflection is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align affine_subspace.w_opp_side_point_reflection AffineSubspace.wOppSide_pointReflectionₓ'. -/
theorem wOppSide_pointReflection {s : AffineSubspace R P} {x : P} (y : P) (hx : x ∈ s) :
s.WOppSide y (pointReflection R x y) :=
(wbtw_pointReflection R _ _).wOppSide₁₃ hx
#align affine_subspace.w_opp_side_point_reflection AffineSubspace.wOppSide_pointReflection
-/- warning: affine_subspace.s_opp_side_point_reflection -> AffineSubspace.sOppSide_pointReflection is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align affine_subspace.s_opp_side_point_reflection AffineSubspace.sOppSide_pointReflectionₓ'. -/
theorem sOppSide_pointReflection {s : AffineSubspace R P} {x y : P} (hx : x ∈ s) (hy : y ∉ s) :
s.SOppSide y (pointReflection R x y) :=
by
@@ -1441,12 +901,6 @@ variable [NormedAddTorsor V P]
include V
-/- warning: affine_subspace.is_connected_set_of_w_same_side -> AffineSubspace.isConnected_setOf_wSameSide is a dubious translation:
-lean 3 declaration is
- forall {V : Type.{u1}} {P : Type.{u2}} [_inst_1 : SeminormedAddCommGroup.{u1} V] [_inst_2 : NormedSpace.{0, u1} Real V Real.normedField _inst_1] [_inst_3 : PseudoMetricSpace.{u2} P] [_inst_4 : NormedAddTorsor.{u1, u2} V P _inst_1 _inst_3] {s : AffineSubspace.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4)} (x : P), (Set.Nonempty.{u2} P ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (AffineSubspace.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4)) (Set.{u2} P) (HasLiftT.mk.{succ u2, succ u2} (AffineSubspace.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4)) (Set.{u2} P) (CoeTCₓ.coe.{succ u2, succ u2} (AffineSubspace.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4)) (Set.{u2} P) (SetLike.Set.hasCoeT.{u2, u2} (AffineSubspace.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4)) P (AffineSubspace.setLike.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4))))) s)) -> (IsConnected.{u2} P (UniformSpace.toTopologicalSpace.{u2} P (PseudoMetricSpace.toUniformSpace.{u2} P _inst_3)) (setOf.{u2} P (fun (y : P) => AffineSubspace.WSameSide.{0, u1, u2} Real V P Real.strictOrderedCommRing (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4) s x y)))
-but is expected to have type
- forall {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : SeminormedAddCommGroup.{u2} V] [_inst_2 : NormedSpace.{0, u2} Real V Real.normedField _inst_1] [_inst_3 : PseudoMetricSpace.{u1} P] [_inst_4 : NormedAddTorsor.{u2, u1} V P _inst_1 _inst_3] {s : AffineSubspace.{0, u2, u1} Real V P Real.instRingReal (SeminormedAddCommGroup.toAddCommGroup.{u2} V _inst_1) (NormedSpace.toModule.{0, u2} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u2, u1} V P _inst_1 _inst_3 _inst_4)} (x : P), (Set.Nonempty.{u1} P (SetLike.coe.{u1, u1} (AffineSubspace.{0, u2, u1} Real V P Real.instRingReal (SeminormedAddCommGroup.toAddCommGroup.{u2} V _inst_1) (NormedSpace.toModule.{0, u2} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u2, u1} V P _inst_1 _inst_3 _inst_4)) P (AffineSubspace.instSetLikeAffineSubspace.{0, u2, u1} Real V P Real.instRingReal (SeminormedAddCommGroup.toAddCommGroup.{u2} V _inst_1) (NormedSpace.toModule.{0, u2} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u2, u1} V P _inst_1 _inst_3 _inst_4)) s)) -> (IsConnected.{u1} P (UniformSpace.toTopologicalSpace.{u1} P (PseudoMetricSpace.toUniformSpace.{u1} P _inst_3)) (setOf.{u1} P (fun (y : P) => AffineSubspace.WSameSide.{0, u2, u1} Real V P Real.instStrictOrderedCommRingReal (SeminormedAddCommGroup.toAddCommGroup.{u2} V _inst_1) (NormedSpace.toModule.{0, u2} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u2, u1} V P _inst_1 _inst_3 _inst_4) s x y)))
-Case conversion may be inaccurate. Consider using '#align affine_subspace.is_connected_set_of_w_same_side AffineSubspace.isConnected_setOf_wSameSideₓ'. -/
theorem isConnected_setOf_wSameSide {s : AffineSubspace ℝ P} (x : P) (h : (s : Set P).Nonempty) :
IsConnected { y | s.WSameSide x y } :=
by
@@ -1463,12 +917,6 @@ theorem isConnected_setOf_wSameSide {s : AffineSubspace ℝ P} (x : P) (h : (s :
convert AddTorsor.connectedSpace s.direction s
#align affine_subspace.is_connected_set_of_w_same_side AffineSubspace.isConnected_setOf_wSameSide
-/- warning: affine_subspace.is_preconnected_set_of_w_same_side -> AffineSubspace.isPreconnected_setOf_wSameSide is a dubious translation:
-lean 3 declaration is
- forall {V : Type.{u1}} {P : Type.{u2}} [_inst_1 : SeminormedAddCommGroup.{u1} V] [_inst_2 : NormedSpace.{0, u1} Real V Real.normedField _inst_1] [_inst_3 : PseudoMetricSpace.{u2} P] [_inst_4 : NormedAddTorsor.{u1, u2} V P _inst_1 _inst_3] (s : AffineSubspace.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4)) (x : P), IsPreconnected.{u2} P (UniformSpace.toTopologicalSpace.{u2} P (PseudoMetricSpace.toUniformSpace.{u2} P _inst_3)) (setOf.{u2} P (fun (y : P) => AffineSubspace.WSameSide.{0, u1, u2} Real V P Real.strictOrderedCommRing (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4) s x y))
-but is expected to have type
- forall {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : SeminormedAddCommGroup.{u2} V] [_inst_2 : NormedSpace.{0, u2} Real V Real.normedField _inst_1] [_inst_3 : PseudoMetricSpace.{u1} P] [_inst_4 : NormedAddTorsor.{u2, u1} V P _inst_1 _inst_3] (s : AffineSubspace.{0, u2, u1} Real V P Real.instRingReal (SeminormedAddCommGroup.toAddCommGroup.{u2} V _inst_1) (NormedSpace.toModule.{0, u2} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u2, u1} V P _inst_1 _inst_3 _inst_4)) (x : P), IsPreconnected.{u1} P (UniformSpace.toTopologicalSpace.{u1} P (PseudoMetricSpace.toUniformSpace.{u1} P _inst_3)) (setOf.{u1} P (fun (y : P) => AffineSubspace.WSameSide.{0, u2, u1} Real V P Real.instStrictOrderedCommRingReal (SeminormedAddCommGroup.toAddCommGroup.{u2} V _inst_1) (NormedSpace.toModule.{0, u2} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u2, u1} V P _inst_1 _inst_3 _inst_4) s x y))
-Case conversion may be inaccurate. Consider using '#align affine_subspace.is_preconnected_set_of_w_same_side AffineSubspace.isPreconnected_setOf_wSameSideₓ'. -/
theorem isPreconnected_setOf_wSameSide (s : AffineSubspace ℝ P) (x : P) :
IsPreconnected { y | s.WSameSide x y } :=
by
@@ -1480,12 +928,6 @@ theorem isPreconnected_setOf_wSameSide (s : AffineSubspace ℝ P) (x : P) :
· exact (is_connected_set_of_w_same_side x h).IsPreconnected
#align affine_subspace.is_preconnected_set_of_w_same_side AffineSubspace.isPreconnected_setOf_wSameSide
-/- warning: affine_subspace.is_connected_set_of_s_same_side -> AffineSubspace.isConnected_setOf_sSameSide is a dubious translation:
-lean 3 declaration is
- forall {V : Type.{u1}} {P : Type.{u2}} [_inst_1 : SeminormedAddCommGroup.{u1} V] [_inst_2 : NormedSpace.{0, u1} Real V Real.normedField _inst_1] [_inst_3 : PseudoMetricSpace.{u2} P] [_inst_4 : NormedAddTorsor.{u1, u2} V P _inst_1 _inst_3] {s : AffineSubspace.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4)} {x : P}, (Not (Membership.Mem.{u2, u2} P (AffineSubspace.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4)) (SetLike.hasMem.{u2, u2} (AffineSubspace.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4)) P (AffineSubspace.setLike.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4))) x s)) -> (Set.Nonempty.{u2} P ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (AffineSubspace.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4)) (Set.{u2} P) (HasLiftT.mk.{succ u2, succ u2} (AffineSubspace.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4)) (Set.{u2} P) (CoeTCₓ.coe.{succ u2, succ u2} (AffineSubspace.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4)) (Set.{u2} P) (SetLike.Set.hasCoeT.{u2, u2} (AffineSubspace.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4)) P (AffineSubspace.setLike.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4))))) s)) -> (IsConnected.{u2} P (UniformSpace.toTopologicalSpace.{u2} P (PseudoMetricSpace.toUniformSpace.{u2} P _inst_3)) (setOf.{u2} P (fun (y : P) => AffineSubspace.SSameSide.{0, u1, u2} Real V P Real.strictOrderedCommRing (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4) s x y)))
-but is expected to have type
- forall {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : SeminormedAddCommGroup.{u2} V] [_inst_2 : NormedSpace.{0, u2} Real V Real.normedField _inst_1] [_inst_3 : PseudoMetricSpace.{u1} P] [_inst_4 : NormedAddTorsor.{u2, u1} V P _inst_1 _inst_3] {s : AffineSubspace.{0, u2, u1} Real V P Real.instRingReal (SeminormedAddCommGroup.toAddCommGroup.{u2} V _inst_1) (NormedSpace.toModule.{0, u2} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u2, u1} V P _inst_1 _inst_3 _inst_4)} {x : P}, (Not (Membership.mem.{u1, u1} P (AffineSubspace.{0, u2, u1} Real V P Real.instRingReal (SeminormedAddCommGroup.toAddCommGroup.{u2} V _inst_1) (NormedSpace.toModule.{0, u2} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u2, u1} V P _inst_1 _inst_3 _inst_4)) (SetLike.instMembership.{u1, u1} (AffineSubspace.{0, u2, u1} Real V P Real.instRingReal (SeminormedAddCommGroup.toAddCommGroup.{u2} V _inst_1) (NormedSpace.toModule.{0, u2} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u2, u1} V P _inst_1 _inst_3 _inst_4)) P (AffineSubspace.instSetLikeAffineSubspace.{0, u2, u1} Real V P Real.instRingReal (SeminormedAddCommGroup.toAddCommGroup.{u2} V _inst_1) (NormedSpace.toModule.{0, u2} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u2, u1} V P _inst_1 _inst_3 _inst_4))) x s)) -> (Set.Nonempty.{u1} P (SetLike.coe.{u1, u1} (AffineSubspace.{0, u2, u1} Real V P Real.instRingReal (SeminormedAddCommGroup.toAddCommGroup.{u2} V _inst_1) (NormedSpace.toModule.{0, u2} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u2, u1} V P _inst_1 _inst_3 _inst_4)) P (AffineSubspace.instSetLikeAffineSubspace.{0, u2, u1} Real V P Real.instRingReal (SeminormedAddCommGroup.toAddCommGroup.{u2} V _inst_1) (NormedSpace.toModule.{0, u2} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u2, u1} V P _inst_1 _inst_3 _inst_4)) s)) -> (IsConnected.{u1} P (UniformSpace.toTopologicalSpace.{u1} P (PseudoMetricSpace.toUniformSpace.{u1} P _inst_3)) (setOf.{u1} P (fun (y : P) => AffineSubspace.SSameSide.{0, u2, u1} Real V P Real.instStrictOrderedCommRingReal (SeminormedAddCommGroup.toAddCommGroup.{u2} V _inst_1) (NormedSpace.toModule.{0, u2} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u2, u1} V P _inst_1 _inst_3 _inst_4) s x y)))
-Case conversion may be inaccurate. Consider using '#align affine_subspace.is_connected_set_of_s_same_side AffineSubspace.isConnected_setOf_sSameSideₓ'. -/
theorem isConnected_setOf_sSameSide {s : AffineSubspace ℝ P} {x : P} (hx : x ∉ s)
(h : (s : Set P).Nonempty) : IsConnected { y | s.SSameSide x y } :=
by
@@ -1498,12 +940,6 @@ theorem isConnected_setOf_sSameSide {s : AffineSubspace ℝ P} {x : P} (hx : x
convert AddTorsor.connectedSpace s.direction s
#align affine_subspace.is_connected_set_of_s_same_side AffineSubspace.isConnected_setOf_sSameSide
-/- warning: affine_subspace.is_preconnected_set_of_s_same_side -> AffineSubspace.isPreconnected_setOf_sSameSide is a dubious translation:
-lean 3 declaration is
- forall {V : Type.{u1}} {P : Type.{u2}} [_inst_1 : SeminormedAddCommGroup.{u1} V] [_inst_2 : NormedSpace.{0, u1} Real V Real.normedField _inst_1] [_inst_3 : PseudoMetricSpace.{u2} P] [_inst_4 : NormedAddTorsor.{u1, u2} V P _inst_1 _inst_3] (s : AffineSubspace.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4)) (x : P), IsPreconnected.{u2} P (UniformSpace.toTopologicalSpace.{u2} P (PseudoMetricSpace.toUniformSpace.{u2} P _inst_3)) (setOf.{u2} P (fun (y : P) => AffineSubspace.SSameSide.{0, u1, u2} Real V P Real.strictOrderedCommRing (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4) s x y))
-but is expected to have type
- forall {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : SeminormedAddCommGroup.{u2} V] [_inst_2 : NormedSpace.{0, u2} Real V Real.normedField _inst_1] [_inst_3 : PseudoMetricSpace.{u1} P] [_inst_4 : NormedAddTorsor.{u2, u1} V P _inst_1 _inst_3] (s : AffineSubspace.{0, u2, u1} Real V P Real.instRingReal (SeminormedAddCommGroup.toAddCommGroup.{u2} V _inst_1) (NormedSpace.toModule.{0, u2} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u2, u1} V P _inst_1 _inst_3 _inst_4)) (x : P), IsPreconnected.{u1} P (UniformSpace.toTopologicalSpace.{u1} P (PseudoMetricSpace.toUniformSpace.{u1} P _inst_3)) (setOf.{u1} P (fun (y : P) => AffineSubspace.SSameSide.{0, u2, u1} Real V P Real.instStrictOrderedCommRingReal (SeminormedAddCommGroup.toAddCommGroup.{u2} V _inst_1) (NormedSpace.toModule.{0, u2} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u2, u1} V P _inst_1 _inst_3 _inst_4) s x y))
-Case conversion may be inaccurate. Consider using '#align affine_subspace.is_preconnected_set_of_s_same_side AffineSubspace.isPreconnected_setOf_sSameSideₓ'. -/
theorem isPreconnected_setOf_sSameSide (s : AffineSubspace ℝ P) (x : P) :
IsPreconnected { y | s.SSameSide x y } :=
by
@@ -1519,12 +955,6 @@ theorem isPreconnected_setOf_sSameSide (s : AffineSubspace ℝ P) (x : P) :
· exact (is_connected_set_of_s_same_side hx h).IsPreconnected
#align affine_subspace.is_preconnected_set_of_s_same_side AffineSubspace.isPreconnected_setOf_sSameSide
-/- warning: affine_subspace.is_connected_set_of_w_opp_side -> AffineSubspace.isConnected_setOf_wOppSide is a dubious translation:
-lean 3 declaration is
- forall {V : Type.{u1}} {P : Type.{u2}} [_inst_1 : SeminormedAddCommGroup.{u1} V] [_inst_2 : NormedSpace.{0, u1} Real V Real.normedField _inst_1] [_inst_3 : PseudoMetricSpace.{u2} P] [_inst_4 : NormedAddTorsor.{u1, u2} V P _inst_1 _inst_3] {s : AffineSubspace.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4)} (x : P), (Set.Nonempty.{u2} P ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (AffineSubspace.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4)) (Set.{u2} P) (HasLiftT.mk.{succ u2, succ u2} (AffineSubspace.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4)) (Set.{u2} P) (CoeTCₓ.coe.{succ u2, succ u2} (AffineSubspace.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4)) (Set.{u2} P) (SetLike.Set.hasCoeT.{u2, u2} (AffineSubspace.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4)) P (AffineSubspace.setLike.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4))))) s)) -> (IsConnected.{u2} P (UniformSpace.toTopologicalSpace.{u2} P (PseudoMetricSpace.toUniformSpace.{u2} P _inst_3)) (setOf.{u2} P (fun (y : P) => AffineSubspace.WOppSide.{0, u1, u2} Real V P Real.strictOrderedCommRing (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4) s x y)))
-but is expected to have type
- forall {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : SeminormedAddCommGroup.{u2} V] [_inst_2 : NormedSpace.{0, u2} Real V Real.normedField _inst_1] [_inst_3 : PseudoMetricSpace.{u1} P] [_inst_4 : NormedAddTorsor.{u2, u1} V P _inst_1 _inst_3] {s : AffineSubspace.{0, u2, u1} Real V P Real.instRingReal (SeminormedAddCommGroup.toAddCommGroup.{u2} V _inst_1) (NormedSpace.toModule.{0, u2} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u2, u1} V P _inst_1 _inst_3 _inst_4)} (x : P), (Set.Nonempty.{u1} P (SetLike.coe.{u1, u1} (AffineSubspace.{0, u2, u1} Real V P Real.instRingReal (SeminormedAddCommGroup.toAddCommGroup.{u2} V _inst_1) (NormedSpace.toModule.{0, u2} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u2, u1} V P _inst_1 _inst_3 _inst_4)) P (AffineSubspace.instSetLikeAffineSubspace.{0, u2, u1} Real V P Real.instRingReal (SeminormedAddCommGroup.toAddCommGroup.{u2} V _inst_1) (NormedSpace.toModule.{0, u2} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u2, u1} V P _inst_1 _inst_3 _inst_4)) s)) -> (IsConnected.{u1} P (UniformSpace.toTopologicalSpace.{u1} P (PseudoMetricSpace.toUniformSpace.{u1} P _inst_3)) (setOf.{u1} P (fun (y : P) => AffineSubspace.WOppSide.{0, u2, u1} Real V P Real.instStrictOrderedCommRingReal (SeminormedAddCommGroup.toAddCommGroup.{u2} V _inst_1) (NormedSpace.toModule.{0, u2} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u2, u1} V P _inst_1 _inst_3 _inst_4) s x y)))
-Case conversion may be inaccurate. Consider using '#align affine_subspace.is_connected_set_of_w_opp_side AffineSubspace.isConnected_setOf_wOppSideₓ'. -/
theorem isConnected_setOf_wOppSide {s : AffineSubspace ℝ P} (x : P) (h : (s : Set P).Nonempty) :
IsConnected { y | s.WOppSide x y } :=
by
@@ -1541,12 +971,6 @@ theorem isConnected_setOf_wOppSide {s : AffineSubspace ℝ P} (x : P) (h : (s :
convert AddTorsor.connectedSpace s.direction s
#align affine_subspace.is_connected_set_of_w_opp_side AffineSubspace.isConnected_setOf_wOppSide
-/- warning: affine_subspace.is_preconnected_set_of_w_opp_side -> AffineSubspace.isPreconnected_setOf_wOppSide is a dubious translation:
-lean 3 declaration is
- forall {V : Type.{u1}} {P : Type.{u2}} [_inst_1 : SeminormedAddCommGroup.{u1} V] [_inst_2 : NormedSpace.{0, u1} Real V Real.normedField _inst_1] [_inst_3 : PseudoMetricSpace.{u2} P] [_inst_4 : NormedAddTorsor.{u1, u2} V P _inst_1 _inst_3] (s : AffineSubspace.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4)) (x : P), IsPreconnected.{u2} P (UniformSpace.toTopologicalSpace.{u2} P (PseudoMetricSpace.toUniformSpace.{u2} P _inst_3)) (setOf.{u2} P (fun (y : P) => AffineSubspace.WOppSide.{0, u1, u2} Real V P Real.strictOrderedCommRing (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4) s x y))
-but is expected to have type
- forall {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : SeminormedAddCommGroup.{u2} V] [_inst_2 : NormedSpace.{0, u2} Real V Real.normedField _inst_1] [_inst_3 : PseudoMetricSpace.{u1} P] [_inst_4 : NormedAddTorsor.{u2, u1} V P _inst_1 _inst_3] (s : AffineSubspace.{0, u2, u1} Real V P Real.instRingReal (SeminormedAddCommGroup.toAddCommGroup.{u2} V _inst_1) (NormedSpace.toModule.{0, u2} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u2, u1} V P _inst_1 _inst_3 _inst_4)) (x : P), IsPreconnected.{u1} P (UniformSpace.toTopologicalSpace.{u1} P (PseudoMetricSpace.toUniformSpace.{u1} P _inst_3)) (setOf.{u1} P (fun (y : P) => AffineSubspace.WOppSide.{0, u2, u1} Real V P Real.instStrictOrderedCommRingReal (SeminormedAddCommGroup.toAddCommGroup.{u2} V _inst_1) (NormedSpace.toModule.{0, u2} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u2, u1} V P _inst_1 _inst_3 _inst_4) s x y))
-Case conversion may be inaccurate. Consider using '#align affine_subspace.is_preconnected_set_of_w_opp_side AffineSubspace.isPreconnected_setOf_wOppSideₓ'. -/
theorem isPreconnected_setOf_wOppSide (s : AffineSubspace ℝ P) (x : P) :
IsPreconnected { y | s.WOppSide x y } :=
by
@@ -1558,12 +982,6 @@ theorem isPreconnected_setOf_wOppSide (s : AffineSubspace ℝ P) (x : P) :
· exact (is_connected_set_of_w_opp_side x h).IsPreconnected
#align affine_subspace.is_preconnected_set_of_w_opp_side AffineSubspace.isPreconnected_setOf_wOppSide
-/- warning: affine_subspace.is_connected_set_of_s_opp_side -> AffineSubspace.isConnected_setOf_sOppSide is a dubious translation:
-lean 3 declaration is
- forall {V : Type.{u1}} {P : Type.{u2}} [_inst_1 : SeminormedAddCommGroup.{u1} V] [_inst_2 : NormedSpace.{0, u1} Real V Real.normedField _inst_1] [_inst_3 : PseudoMetricSpace.{u2} P] [_inst_4 : NormedAddTorsor.{u1, u2} V P _inst_1 _inst_3] {s : AffineSubspace.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4)} {x : P}, (Not (Membership.Mem.{u2, u2} P (AffineSubspace.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4)) (SetLike.hasMem.{u2, u2} (AffineSubspace.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4)) P (AffineSubspace.setLike.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4))) x s)) -> (Set.Nonempty.{u2} P ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (AffineSubspace.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4)) (Set.{u2} P) (HasLiftT.mk.{succ u2, succ u2} (AffineSubspace.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4)) (Set.{u2} P) (CoeTCₓ.coe.{succ u2, succ u2} (AffineSubspace.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4)) (Set.{u2} P) (SetLike.Set.hasCoeT.{u2, u2} (AffineSubspace.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4)) P (AffineSubspace.setLike.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4))))) s)) -> (IsConnected.{u2} P (UniformSpace.toTopologicalSpace.{u2} P (PseudoMetricSpace.toUniformSpace.{u2} P _inst_3)) (setOf.{u2} P (fun (y : P) => AffineSubspace.SOppSide.{0, u1, u2} Real V P Real.strictOrderedCommRing (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4) s x y)))
-but is expected to have type
- forall {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : SeminormedAddCommGroup.{u2} V] [_inst_2 : NormedSpace.{0, u2} Real V Real.normedField _inst_1] [_inst_3 : PseudoMetricSpace.{u1} P] [_inst_4 : NormedAddTorsor.{u2, u1} V P _inst_1 _inst_3] {s : AffineSubspace.{0, u2, u1} Real V P Real.instRingReal (SeminormedAddCommGroup.toAddCommGroup.{u2} V _inst_1) (NormedSpace.toModule.{0, u2} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u2, u1} V P _inst_1 _inst_3 _inst_4)} {x : P}, (Not (Membership.mem.{u1, u1} P (AffineSubspace.{0, u2, u1} Real V P Real.instRingReal (SeminormedAddCommGroup.toAddCommGroup.{u2} V _inst_1) (NormedSpace.toModule.{0, u2} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u2, u1} V P _inst_1 _inst_3 _inst_4)) (SetLike.instMembership.{u1, u1} (AffineSubspace.{0, u2, u1} Real V P Real.instRingReal (SeminormedAddCommGroup.toAddCommGroup.{u2} V _inst_1) (NormedSpace.toModule.{0, u2} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u2, u1} V P _inst_1 _inst_3 _inst_4)) P (AffineSubspace.instSetLikeAffineSubspace.{0, u2, u1} Real V P Real.instRingReal (SeminormedAddCommGroup.toAddCommGroup.{u2} V _inst_1) (NormedSpace.toModule.{0, u2} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u2, u1} V P _inst_1 _inst_3 _inst_4))) x s)) -> (Set.Nonempty.{u1} P (SetLike.coe.{u1, u1} (AffineSubspace.{0, u2, u1} Real V P Real.instRingReal (SeminormedAddCommGroup.toAddCommGroup.{u2} V _inst_1) (NormedSpace.toModule.{0, u2} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u2, u1} V P _inst_1 _inst_3 _inst_4)) P (AffineSubspace.instSetLikeAffineSubspace.{0, u2, u1} Real V P Real.instRingReal (SeminormedAddCommGroup.toAddCommGroup.{u2} V _inst_1) (NormedSpace.toModule.{0, u2} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u2, u1} V P _inst_1 _inst_3 _inst_4)) s)) -> (IsConnected.{u1} P (UniformSpace.toTopologicalSpace.{u1} P (PseudoMetricSpace.toUniformSpace.{u1} P _inst_3)) (setOf.{u1} P (fun (y : P) => AffineSubspace.SOppSide.{0, u2, u1} Real V P Real.instStrictOrderedCommRingReal (SeminormedAddCommGroup.toAddCommGroup.{u2} V _inst_1) (NormedSpace.toModule.{0, u2} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u2, u1} V P _inst_1 _inst_3 _inst_4) s x y)))
-Case conversion may be inaccurate. Consider using '#align affine_subspace.is_connected_set_of_s_opp_side AffineSubspace.isConnected_setOf_sOppSideₓ'. -/
theorem isConnected_setOf_sOppSide {s : AffineSubspace ℝ P} {x : P} (hx : x ∉ s)
(h : (s : Set P).Nonempty) : IsConnected { y | s.SOppSide x y } :=
by
@@ -1576,12 +994,6 @@ theorem isConnected_setOf_sOppSide {s : AffineSubspace ℝ P} {x : P} (hx : x
convert AddTorsor.connectedSpace s.direction s
#align affine_subspace.is_connected_set_of_s_opp_side AffineSubspace.isConnected_setOf_sOppSide
-/- warning: affine_subspace.is_preconnected_set_of_s_opp_side -> AffineSubspace.isPreconnected_setOf_sOppSide is a dubious translation:
-lean 3 declaration is
- forall {V : Type.{u1}} {P : Type.{u2}} [_inst_1 : SeminormedAddCommGroup.{u1} V] [_inst_2 : NormedSpace.{0, u1} Real V Real.normedField _inst_1] [_inst_3 : PseudoMetricSpace.{u2} P] [_inst_4 : NormedAddTorsor.{u1, u2} V P _inst_1 _inst_3] (s : AffineSubspace.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4)) (x : P), IsPreconnected.{u2} P (UniformSpace.toTopologicalSpace.{u2} P (PseudoMetricSpace.toUniformSpace.{u2} P _inst_3)) (setOf.{u2} P (fun (y : P) => AffineSubspace.SOppSide.{0, u1, u2} Real V P Real.strictOrderedCommRing (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4) s x y))
-but is expected to have type
- forall {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : SeminormedAddCommGroup.{u2} V] [_inst_2 : NormedSpace.{0, u2} Real V Real.normedField _inst_1] [_inst_3 : PseudoMetricSpace.{u1} P] [_inst_4 : NormedAddTorsor.{u2, u1} V P _inst_1 _inst_3] (s : AffineSubspace.{0, u2, u1} Real V P Real.instRingReal (SeminormedAddCommGroup.toAddCommGroup.{u2} V _inst_1) (NormedSpace.toModule.{0, u2} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u2, u1} V P _inst_1 _inst_3 _inst_4)) (x : P), IsPreconnected.{u1} P (UniformSpace.toTopologicalSpace.{u1} P (PseudoMetricSpace.toUniformSpace.{u1} P _inst_3)) (setOf.{u1} P (fun (y : P) => AffineSubspace.SOppSide.{0, u2, u1} Real V P Real.instStrictOrderedCommRingReal (SeminormedAddCommGroup.toAddCommGroup.{u2} V _inst_1) (NormedSpace.toModule.{0, u2} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u2, u1} V P _inst_1 _inst_3 _inst_4) s x y))
-Case conversion may be inaccurate. Consider using '#align affine_subspace.is_preconnected_set_of_s_opp_side AffineSubspace.isPreconnected_setOf_sOppSideₓ'. -/
theorem isPreconnected_setOf_sOppSide (s : AffineSubspace ℝ P) (x : P) :
IsPreconnected { y | s.SOppSide x y } :=
by
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -866,12 +866,10 @@ theorem wOppSide_iff_exists_right {s : AffineSubspace R P} {x y p₂ : P} (h : p
by
rw [w_opp_side_comm, w_opp_side_iff_exists_left h]
constructor
- · rintro (hy | ⟨p, hp, hr⟩)
- · exact Or.inl hy
+ · rintro (hy | ⟨p, hp, hr⟩); · exact Or.inl hy
refine' Or.inr ⟨p, hp, _⟩
rwa [SameRay.sameRay_comm, ← sameRay_neg_iff, neg_vsub_eq_vsub_rev, neg_vsub_eq_vsub_rev]
- · rintro (hy | ⟨p, hp, hr⟩)
- · exact Or.inl hy
+ · rintro (hy | ⟨p, hp, hr⟩); · exact Or.inl hy
refine' Or.inr ⟨p, hp, _⟩
rwa [SameRay.sameRay_comm, ← sameRay_neg_iff, neg_vsub_eq_vsub_rev, neg_vsub_eq_vsub_rev]
#align affine_subspace.w_opp_side_iff_exists_right AffineSubspace.wOppSide_iff_exists_right
@@ -1248,9 +1246,7 @@ theorem Sbtw.sOppSide_of_not_mem_of_mem {s : AffineSubspace R P} {x y z : P} (h
refine' ⟨h.wbtw.w_opp_side₁₃ hy, hx, fun hz => hx _⟩
rcases h with ⟨⟨t, ⟨ht0, ht1⟩, rfl⟩, hyx, hyz⟩
rw [line_map_apply] at hy
- have ht : t ≠ 1 := by
- rintro rfl
- simpa [line_map_apply] using hyz
+ have ht : t ≠ 1 := by rintro rfl; simpa [line_map_apply] using hyz
have hy' := vsub_mem_direction hy hz
rw [vadd_vsub_assoc, ← neg_vsub_eq_vsub_rev z, ← neg_one_smul R (z -ᵥ x), ← add_smul, ←
sub_eq_add_neg, s.direction.smul_mem_iff (sub_ne_zero_of_ne ht)] at hy'
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -81,10 +81,7 @@ def SOppSide (s : AffineSubspace R P) (x y : P) : Prop :=
include V'
/- warning: affine_subspace.w_same_side.map -> AffineSubspace.WSameSide.map is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {V' : Type.{u3}} {P : Type.{u4}} {P' : Type.{u5}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u4} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] [_inst_5 : AddCommGroup.{u3} V'] [_inst_6 : Module.{u1, u3} R V' (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u3} V' _inst_5)] [_inst_7 : AddTorsor.{u3, u5} V' P' (AddCommGroup.toAddGroup.{u3} V' _inst_5)] {s : AffineSubspace.{u1, u2, u4} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.WSameSide.{u1, u2, u4} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) -> (forall (f : AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7), AffineSubspace.WSameSide.{u1, u3, u5} R V' P' _inst_1 _inst_5 _inst_6 _inst_7 (AffineSubspace.map.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 f s) (coeFn.{max (succ u2) (succ u4) (succ u3) (succ u5), max (succ u4) (succ u5)} (AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (fun (_x : AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) => P -> P') (AffineMap.hasCoeToFun.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f x) (coeFn.{max (succ u2) (succ u4) (succ u3) (succ u5), max (succ u4) (succ u5)} (AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (fun (_x : AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) => P -> P') (AffineMap.hasCoeToFun.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f y))
-but is expected to have type
- forall {R : Type.{u5}} {V : Type.{u4}} {V' : Type.{u2}} {P : Type.{u3}} {P' : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u5} R] [_inst_2 : AddCommGroup.{u4} V] [_inst_3 : Module.{u5, u4} R V (StrictOrderedSemiring.toSemiring.{u5} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u5} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u5} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u4} V _inst_2)] [_inst_4 : AddTorsor.{u4, u3} V P (AddCommGroup.toAddGroup.{u4} V _inst_2)] [_inst_5 : AddCommGroup.{u2} V'] [_inst_6 : Module.{u5, u2} R V' (StrictOrderedSemiring.toSemiring.{u5} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u5} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u5} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V' _inst_5)] [_inst_7 : AddTorsor.{u2, u1} V' P' (AddCommGroup.toAddGroup.{u2} V' _inst_5)] {s : AffineSubspace.{u5, u4, u3} R V P (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.WSameSide.{u5, u4, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) -> (forall (f : AffineMap.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7), AffineSubspace.WSameSide.{u5, u2, u1} R V' P' _inst_1 _inst_5 _inst_6 _inst_7 (AffineSubspace.map.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 f s) (FunLike.coe.{max (max (max (succ u4) (succ u3)) (succ u2)) (succ u1), succ u3, succ u1} (AffineMap.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => P') _x) (AffineMap.funLike.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f x) (FunLike.coe.{max (max (max (succ u4) (succ u3)) (succ u2)) (succ u1), succ u3, succ u1} (AffineMap.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => P') _x) (AffineMap.funLike.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f y))
+<too large>
Case conversion may be inaccurate. Consider using '#align affine_subspace.w_same_side.map AffineSubspace.WSameSide.mapₓ'. -/
theorem WSameSide.map {s : AffineSubspace R P} {x y : P} (h : s.WSameSide x y) (f : P →ᵃ[R] P') :
(s.map f).WSameSide (f x) (f y) :=
@@ -96,10 +93,7 @@ theorem WSameSide.map {s : AffineSubspace R P} {x y : P} (h : s.WSameSide x y) (
#align affine_subspace.w_same_side.map AffineSubspace.WSameSide.map
/- warning: function.injective.w_same_side_map_iff -> Function.Injective.wSameSide_map_iff is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {V' : Type.{u3}} {P : Type.{u4}} {P' : Type.{u5}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u4} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] [_inst_5 : AddCommGroup.{u3} V'] [_inst_6 : Module.{u1, u3} R V' (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u3} V' _inst_5)] [_inst_7 : AddTorsor.{u3, u5} V' P' (AddCommGroup.toAddGroup.{u3} V' _inst_5)] {s : AffineSubspace.{u1, u2, u4} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {f : AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7}, (Function.Injective.{succ u4, succ u5} P P' (coeFn.{max (succ u2) (succ u4) (succ u3) (succ u5), max (succ u4) (succ u5)} (AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (fun (_x : AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) => P -> P') (AffineMap.hasCoeToFun.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f)) -> (Iff (AffineSubspace.WSameSide.{u1, u3, u5} R V' P' _inst_1 _inst_5 _inst_6 _inst_7 (AffineSubspace.map.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 f s) (coeFn.{max (succ u2) (succ u4) (succ u3) (succ u5), max (succ u4) (succ u5)} (AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (fun (_x : AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) => P -> P') (AffineMap.hasCoeToFun.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f x) (coeFn.{max (succ u2) (succ u4) (succ u3) (succ u5), max (succ u4) (succ u5)} (AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (fun (_x : AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) => P -> P') (AffineMap.hasCoeToFun.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f y)) (AffineSubspace.WSameSide.{u1, u2, u4} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y))
-but is expected to have type
- forall {R : Type.{u5}} {V : Type.{u4}} {V' : Type.{u2}} {P : Type.{u3}} {P' : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u5} R] [_inst_2 : AddCommGroup.{u4} V] [_inst_3 : Module.{u5, u4} R V (StrictOrderedSemiring.toSemiring.{u5} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u5} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u5} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u4} V _inst_2)] [_inst_4 : AddTorsor.{u4, u3} V P (AddCommGroup.toAddGroup.{u4} V _inst_2)] [_inst_5 : AddCommGroup.{u2} V'] [_inst_6 : Module.{u5, u2} R V' (StrictOrderedSemiring.toSemiring.{u5} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u5} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u5} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V' _inst_5)] [_inst_7 : AddTorsor.{u2, u1} V' P' (AddCommGroup.toAddGroup.{u2} V' _inst_5)] {s : AffineSubspace.{u5, u4, u3} R V P (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {f : AffineMap.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7}, (Function.Injective.{succ u3, succ u1} P P' (FunLike.coe.{max (max (max (succ u4) (succ u3)) (succ u2)) (succ u1), succ u3, succ u1} (AffineMap.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => P') _x) (AffineMap.funLike.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f)) -> (Iff (AffineSubspace.WSameSide.{u5, u2, u1} R V' P' _inst_1 _inst_5 _inst_6 _inst_7 (AffineSubspace.map.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 f s) (FunLike.coe.{max (max (max (succ u4) (succ u3)) (succ u2)) (succ u1), succ u3, succ u1} (AffineMap.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => P') _x) (AffineMap.funLike.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f x) (FunLike.coe.{max (max (max (succ u4) (succ u3)) (succ u2)) (succ u1), succ u3, succ u1} (AffineMap.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => P') _x) (AffineMap.funLike.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f y)) (AffineSubspace.WSameSide.{u5, u4, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y))
+<too large>
Case conversion may be inaccurate. Consider using '#align function.injective.w_same_side_map_iff Function.Injective.wSameSide_map_iffₓ'. -/
theorem Function.Injective.wSameSide_map_iff {s : AffineSubspace R P} {x y : P} {f : P →ᵃ[R] P'}
(hf : Function.Injective f) : (s.map f).WSameSide (f x) (f y) ↔ s.WSameSide x y :=
@@ -115,10 +109,7 @@ theorem Function.Injective.wSameSide_map_iff {s : AffineSubspace R P} {x y : P}
#align function.injective.w_same_side_map_iff Function.Injective.wSameSide_map_iff
/- warning: function.injective.s_same_side_map_iff -> Function.Injective.sSameSide_map_iff is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {V' : Type.{u3}} {P : Type.{u4}} {P' : Type.{u5}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u4} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] [_inst_5 : AddCommGroup.{u3} V'] [_inst_6 : Module.{u1, u3} R V' (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u3} V' _inst_5)] [_inst_7 : AddTorsor.{u3, u5} V' P' (AddCommGroup.toAddGroup.{u3} V' _inst_5)] {s : AffineSubspace.{u1, u2, u4} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {f : AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7}, (Function.Injective.{succ u4, succ u5} P P' (coeFn.{max (succ u2) (succ u4) (succ u3) (succ u5), max (succ u4) (succ u5)} (AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (fun (_x : AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) => P -> P') (AffineMap.hasCoeToFun.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f)) -> (Iff (AffineSubspace.SSameSide.{u1, u3, u5} R V' P' _inst_1 _inst_5 _inst_6 _inst_7 (AffineSubspace.map.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 f s) (coeFn.{max (succ u2) (succ u4) (succ u3) (succ u5), max (succ u4) (succ u5)} (AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (fun (_x : AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) => P -> P') (AffineMap.hasCoeToFun.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f x) (coeFn.{max (succ u2) (succ u4) (succ u3) (succ u5), max (succ u4) (succ u5)} (AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (fun (_x : AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) => P -> P') (AffineMap.hasCoeToFun.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f y)) (AffineSubspace.SSameSide.{u1, u2, u4} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y))
-but is expected to have type
- forall {R : Type.{u5}} {V : Type.{u4}} {V' : Type.{u2}} {P : Type.{u3}} {P' : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u5} R] [_inst_2 : AddCommGroup.{u4} V] [_inst_3 : Module.{u5, u4} R V (StrictOrderedSemiring.toSemiring.{u5} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u5} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u5} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u4} V _inst_2)] [_inst_4 : AddTorsor.{u4, u3} V P (AddCommGroup.toAddGroup.{u4} V _inst_2)] [_inst_5 : AddCommGroup.{u2} V'] [_inst_6 : Module.{u5, u2} R V' (StrictOrderedSemiring.toSemiring.{u5} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u5} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u5} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V' _inst_5)] [_inst_7 : AddTorsor.{u2, u1} V' P' (AddCommGroup.toAddGroup.{u2} V' _inst_5)] {s : AffineSubspace.{u5, u4, u3} R V P (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {f : AffineMap.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7}, (Function.Injective.{succ u3, succ u1} P P' (FunLike.coe.{max (max (max (succ u4) (succ u3)) (succ u2)) (succ u1), succ u3, succ u1} (AffineMap.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => P') _x) (AffineMap.funLike.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f)) -> (Iff (AffineSubspace.SSameSide.{u5, u2, u1} R V' P' _inst_1 _inst_5 _inst_6 _inst_7 (AffineSubspace.map.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 f s) (FunLike.coe.{max (max (max (succ u4) (succ u3)) (succ u2)) (succ u1), succ u3, succ u1} (AffineMap.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => P') _x) (AffineMap.funLike.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f x) (FunLike.coe.{max (max (max (succ u4) (succ u3)) (succ u2)) (succ u1), succ u3, succ u1} (AffineMap.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => P') _x) (AffineMap.funLike.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f y)) (AffineSubspace.SSameSide.{u5, u4, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y))
+<too large>
Case conversion may be inaccurate. Consider using '#align function.injective.s_same_side_map_iff Function.Injective.sSameSide_map_iffₓ'. -/
theorem Function.Injective.sSameSide_map_iff {s : AffineSubspace R P} {x y : P} {f : P →ᵃ[R] P'}
(hf : Function.Injective f) : (s.map f).SSameSide (f x) (f y) ↔ s.SSameSide x y := by
@@ -126,10 +117,7 @@ theorem Function.Injective.sSameSide_map_iff {s : AffineSubspace R P} {x y : P}
#align function.injective.s_same_side_map_iff Function.Injective.sSameSide_map_iff
/- warning: affine_equiv.w_same_side_map_iff -> AffineEquiv.wSameSide_map_iff is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {V' : Type.{u3}} {P : Type.{u4}} {P' : Type.{u5}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u4} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] [_inst_5 : AddCommGroup.{u3} V'] [_inst_6 : Module.{u1, u3} R V' (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u3} V' _inst_5)] [_inst_7 : AddTorsor.{u3, u5} V' P' (AddCommGroup.toAddGroup.{u3} V' _inst_5)] {s : AffineSubspace.{u1, u2, u4} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} (f : AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7), Iff (AffineSubspace.WSameSide.{u1, u3, u5} R V' P' _inst_1 _inst_5 _inst_6 _inst_7 (AffineSubspace.map.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 ((fun (a : Sort.{max (succ u4) (succ u5) (succ u2) (succ u3)}) (b : Sort.{max (succ u2) (succ u4) (succ u3) (succ u5)}) [self : HasLiftT.{max (succ u4) (succ u5) (succ u2) (succ u3), max (succ u2) (succ u4) (succ u3) (succ u5)} a b] => self.0) (AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (HasLiftT.mk.{max (succ u4) (succ u5) (succ u2) (succ u3), max (succ u2) (succ u4) (succ u3) (succ u5)} (AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (CoeTCₓ.coe.{max (succ u4) (succ u5) (succ u2) (succ u3), max (succ u2) (succ u4) (succ u3) (succ u5)} (AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (coeBase.{max (succ u4) (succ u5) (succ u2) (succ u3), max (succ u2) (succ u4) (succ u3) (succ u5)} (AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (AffineEquiv.AffineMap.hasCoe.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7)))) f) s) (coeFn.{max (succ u4) (succ u5) (succ u2) (succ u3), max (succ u4) (succ u5)} (AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (fun (_x : AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) => P -> P') (AffineEquiv.hasCoeToFun.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f x) (coeFn.{max (succ u4) (succ u5) (succ u2) (succ u3), max (succ u4) (succ u5)} (AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (fun (_x : AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) => P -> P') (AffineEquiv.hasCoeToFun.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f y)) (AffineSubspace.WSameSide.{u1, u2, u4} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y)
-but is expected to have type
- forall {R : Type.{u5}} {V : Type.{u4}} {V' : Type.{u1}} {P : Type.{u3}} {P' : Type.{u2}} [_inst_1 : StrictOrderedCommRing.{u5} R] [_inst_2 : AddCommGroup.{u4} V] [_inst_3 : Module.{u5, u4} R V (StrictOrderedSemiring.toSemiring.{u5} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u5} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u5} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u4} V _inst_2)] [_inst_4 : AddTorsor.{u4, u3} V P (AddCommGroup.toAddGroup.{u4} V _inst_2)] [_inst_5 : AddCommGroup.{u1} V'] [_inst_6 : Module.{u5, u1} R V' (StrictOrderedSemiring.toSemiring.{u5} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u5} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u5} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} V' _inst_5)] [_inst_7 : AddTorsor.{u1, u2} V' P' (AddCommGroup.toAddGroup.{u1} V' _inst_5)] {s : AffineSubspace.{u5, u4, u3} R V P (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} (f : AffineEquiv.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7), Iff (AffineSubspace.WSameSide.{u5, u1, u2} R V' ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineEquiv._hyg.1470 : P) => P') x) _inst_1 _inst_5 _inst_6 _inst_7 (AffineSubspace.map.{u5, u4, u3, u1, u2} R V P V' ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineEquiv._hyg.1470 : P) => P') x) (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 (AffineEquiv.toAffineMap.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 f) s) (FunLike.coe.{max (max (max (succ u3) (succ u2)) (succ u4)) (succ u1), succ u3, succ u2} (AffineEquiv.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineEquiv._hyg.1470 : P) => P') _x) (EmbeddingLike.toFunLike.{max (max (max (succ u3) (succ u2)) (succ u4)) (succ u1), succ u3, succ u2} (AffineEquiv.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P P' (EquivLike.toEmbeddingLike.{max (max (max (succ u3) (succ u2)) (succ u4)) (succ u1), succ u3, succ u2} (AffineEquiv.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P P' (AffineEquiv.equivLike.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7))) f x) (FunLike.coe.{max (max (max (succ u3) (succ u2)) (succ u4)) (succ u1), succ u3, succ u2} (AffineEquiv.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineEquiv._hyg.1470 : P) => P') _x) (EmbeddingLike.toFunLike.{max (max (max (succ u3) (succ u2)) (succ u4)) (succ u1), succ u3, succ u2} (AffineEquiv.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P P' (EquivLike.toEmbeddingLike.{max (max (max (succ u3) (succ u2)) (succ u4)) (succ u1), succ u3, succ u2} (AffineEquiv.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P P' (AffineEquiv.equivLike.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7))) f y)) (AffineSubspace.WSameSide.{u5, u4, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y)
+<too large>
Case conversion may be inaccurate. Consider using '#align affine_equiv.w_same_side_map_iff AffineEquiv.wSameSide_map_iffₓ'. -/
@[simp]
theorem AffineEquiv.wSameSide_map_iff {s : AffineSubspace R P} {x y : P} (f : P ≃ᵃ[R] P') :
@@ -138,10 +126,7 @@ theorem AffineEquiv.wSameSide_map_iff {s : AffineSubspace R P} {x y : P} (f : P
#align affine_equiv.w_same_side_map_iff AffineEquiv.wSameSide_map_iff
/- warning: affine_equiv.s_same_side_map_iff -> AffineEquiv.sSameSide_map_iff is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {V' : Type.{u3}} {P : Type.{u4}} {P' : Type.{u5}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u4} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] [_inst_5 : AddCommGroup.{u3} V'] [_inst_6 : Module.{u1, u3} R V' (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u3} V' _inst_5)] [_inst_7 : AddTorsor.{u3, u5} V' P' (AddCommGroup.toAddGroup.{u3} V' _inst_5)] {s : AffineSubspace.{u1, u2, u4} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} (f : AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7), Iff (AffineSubspace.SSameSide.{u1, u3, u5} R V' P' _inst_1 _inst_5 _inst_6 _inst_7 (AffineSubspace.map.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 ((fun (a : Sort.{max (succ u4) (succ u5) (succ u2) (succ u3)}) (b : Sort.{max (succ u2) (succ u4) (succ u3) (succ u5)}) [self : HasLiftT.{max (succ u4) (succ u5) (succ u2) (succ u3), max (succ u2) (succ u4) (succ u3) (succ u5)} a b] => self.0) (AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (HasLiftT.mk.{max (succ u4) (succ u5) (succ u2) (succ u3), max (succ u2) (succ u4) (succ u3) (succ u5)} (AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (CoeTCₓ.coe.{max (succ u4) (succ u5) (succ u2) (succ u3), max (succ u2) (succ u4) (succ u3) (succ u5)} (AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (coeBase.{max (succ u4) (succ u5) (succ u2) (succ u3), max (succ u2) (succ u4) (succ u3) (succ u5)} (AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (AffineEquiv.AffineMap.hasCoe.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7)))) f) s) (coeFn.{max (succ u4) (succ u5) (succ u2) (succ u3), max (succ u4) (succ u5)} (AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (fun (_x : AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) => P -> P') (AffineEquiv.hasCoeToFun.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f x) (coeFn.{max (succ u4) (succ u5) (succ u2) (succ u3), max (succ u4) (succ u5)} (AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (fun (_x : AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) => P -> P') (AffineEquiv.hasCoeToFun.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f y)) (AffineSubspace.SSameSide.{u1, u2, u4} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y)
-but is expected to have type
- forall {R : Type.{u5}} {V : Type.{u4}} {V' : Type.{u1}} {P : Type.{u3}} {P' : Type.{u2}} [_inst_1 : StrictOrderedCommRing.{u5} R] [_inst_2 : AddCommGroup.{u4} V] [_inst_3 : Module.{u5, u4} R V (StrictOrderedSemiring.toSemiring.{u5} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u5} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u5} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u4} V _inst_2)] [_inst_4 : AddTorsor.{u4, u3} V P (AddCommGroup.toAddGroup.{u4} V _inst_2)] [_inst_5 : AddCommGroup.{u1} V'] [_inst_6 : Module.{u5, u1} R V' (StrictOrderedSemiring.toSemiring.{u5} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u5} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u5} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} V' _inst_5)] [_inst_7 : AddTorsor.{u1, u2} V' P' (AddCommGroup.toAddGroup.{u1} V' _inst_5)] {s : AffineSubspace.{u5, u4, u3} R V P (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} (f : AffineEquiv.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7), Iff (AffineSubspace.SSameSide.{u5, u1, u2} R V' ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineEquiv._hyg.1470 : P) => P') x) _inst_1 _inst_5 _inst_6 _inst_7 (AffineSubspace.map.{u5, u4, u3, u1, u2} R V P V' ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineEquiv._hyg.1470 : P) => P') x) (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 (AffineEquiv.toAffineMap.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 f) s) (FunLike.coe.{max (max (max (succ u3) (succ u2)) (succ u4)) (succ u1), succ u3, succ u2} (AffineEquiv.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineEquiv._hyg.1470 : P) => P') _x) (EmbeddingLike.toFunLike.{max (max (max (succ u3) (succ u2)) (succ u4)) (succ u1), succ u3, succ u2} (AffineEquiv.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P P' (EquivLike.toEmbeddingLike.{max (max (max (succ u3) (succ u2)) (succ u4)) (succ u1), succ u3, succ u2} (AffineEquiv.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P P' (AffineEquiv.equivLike.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7))) f x) (FunLike.coe.{max (max (max (succ u3) (succ u2)) (succ u4)) (succ u1), succ u3, succ u2} (AffineEquiv.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineEquiv._hyg.1470 : P) => P') _x) (EmbeddingLike.toFunLike.{max (max (max (succ u3) (succ u2)) (succ u4)) (succ u1), succ u3, succ u2} (AffineEquiv.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P P' (EquivLike.toEmbeddingLike.{max (max (max (succ u3) (succ u2)) (succ u4)) (succ u1), succ u3, succ u2} (AffineEquiv.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P P' (AffineEquiv.equivLike.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7))) f y)) (AffineSubspace.SSameSide.{u5, u4, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y)
+<too large>
Case conversion may be inaccurate. Consider using '#align affine_equiv.s_same_side_map_iff AffineEquiv.sSameSide_map_iffₓ'. -/
@[simp]
theorem AffineEquiv.sSameSide_map_iff {s : AffineSubspace R P} {x y : P} (f : P ≃ᵃ[R] P') :
@@ -150,10 +135,7 @@ theorem AffineEquiv.sSameSide_map_iff {s : AffineSubspace R P} {x y : P} (f : P
#align affine_equiv.s_same_side_map_iff AffineEquiv.sSameSide_map_iff
/- warning: affine_subspace.w_opp_side.map -> AffineSubspace.WOppSide.map is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {V' : Type.{u3}} {P : Type.{u4}} {P' : Type.{u5}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u4} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] [_inst_5 : AddCommGroup.{u3} V'] [_inst_6 : Module.{u1, u3} R V' (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u3} V' _inst_5)] [_inst_7 : AddTorsor.{u3, u5} V' P' (AddCommGroup.toAddGroup.{u3} V' _inst_5)] {s : AffineSubspace.{u1, u2, u4} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.WOppSide.{u1, u2, u4} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) -> (forall (f : AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7), AffineSubspace.WOppSide.{u1, u3, u5} R V' P' _inst_1 _inst_5 _inst_6 _inst_7 (AffineSubspace.map.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 f s) (coeFn.{max (succ u2) (succ u4) (succ u3) (succ u5), max (succ u4) (succ u5)} (AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (fun (_x : AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) => P -> P') (AffineMap.hasCoeToFun.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f x) (coeFn.{max (succ u2) (succ u4) (succ u3) (succ u5), max (succ u4) (succ u5)} (AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (fun (_x : AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) => P -> P') (AffineMap.hasCoeToFun.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f y))
-but is expected to have type
- forall {R : Type.{u5}} {V : Type.{u4}} {V' : Type.{u2}} {P : Type.{u3}} {P' : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u5} R] [_inst_2 : AddCommGroup.{u4} V] [_inst_3 : Module.{u5, u4} R V (StrictOrderedSemiring.toSemiring.{u5} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u5} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u5} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u4} V _inst_2)] [_inst_4 : AddTorsor.{u4, u3} V P (AddCommGroup.toAddGroup.{u4} V _inst_2)] [_inst_5 : AddCommGroup.{u2} V'] [_inst_6 : Module.{u5, u2} R V' (StrictOrderedSemiring.toSemiring.{u5} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u5} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u5} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V' _inst_5)] [_inst_7 : AddTorsor.{u2, u1} V' P' (AddCommGroup.toAddGroup.{u2} V' _inst_5)] {s : AffineSubspace.{u5, u4, u3} R V P (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.WOppSide.{u5, u4, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) -> (forall (f : AffineMap.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7), AffineSubspace.WOppSide.{u5, u2, u1} R V' P' _inst_1 _inst_5 _inst_6 _inst_7 (AffineSubspace.map.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 f s) (FunLike.coe.{max (max (max (succ u4) (succ u3)) (succ u2)) (succ u1), succ u3, succ u1} (AffineMap.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => P') _x) (AffineMap.funLike.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f x) (FunLike.coe.{max (max (max (succ u4) (succ u3)) (succ u2)) (succ u1), succ u3, succ u1} (AffineMap.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => P') _x) (AffineMap.funLike.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f y))
+<too large>
Case conversion may be inaccurate. Consider using '#align affine_subspace.w_opp_side.map AffineSubspace.WOppSide.mapₓ'. -/
theorem WOppSide.map {s : AffineSubspace R P} {x y : P} (h : s.WOppSide x y) (f : P →ᵃ[R] P') :
(s.map f).WOppSide (f x) (f y) :=
@@ -165,10 +147,7 @@ theorem WOppSide.map {s : AffineSubspace R P} {x y : P} (h : s.WOppSide x y) (f
#align affine_subspace.w_opp_side.map AffineSubspace.WOppSide.map
/- warning: function.injective.w_opp_side_map_iff -> Function.Injective.wOppSide_map_iff is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {V' : Type.{u3}} {P : Type.{u4}} {P' : Type.{u5}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u4} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] [_inst_5 : AddCommGroup.{u3} V'] [_inst_6 : Module.{u1, u3} R V' (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u3} V' _inst_5)] [_inst_7 : AddTorsor.{u3, u5} V' P' (AddCommGroup.toAddGroup.{u3} V' _inst_5)] {s : AffineSubspace.{u1, u2, u4} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {f : AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7}, (Function.Injective.{succ u4, succ u5} P P' (coeFn.{max (succ u2) (succ u4) (succ u3) (succ u5), max (succ u4) (succ u5)} (AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (fun (_x : AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) => P -> P') (AffineMap.hasCoeToFun.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f)) -> (Iff (AffineSubspace.WOppSide.{u1, u3, u5} R V' P' _inst_1 _inst_5 _inst_6 _inst_7 (AffineSubspace.map.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 f s) (coeFn.{max (succ u2) (succ u4) (succ u3) (succ u5), max (succ u4) (succ u5)} (AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (fun (_x : AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) => P -> P') (AffineMap.hasCoeToFun.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f x) (coeFn.{max (succ u2) (succ u4) (succ u3) (succ u5), max (succ u4) (succ u5)} (AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (fun (_x : AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) => P -> P') (AffineMap.hasCoeToFun.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f y)) (AffineSubspace.WOppSide.{u1, u2, u4} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y))
-but is expected to have type
- forall {R : Type.{u5}} {V : Type.{u4}} {V' : Type.{u2}} {P : Type.{u3}} {P' : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u5} R] [_inst_2 : AddCommGroup.{u4} V] [_inst_3 : Module.{u5, u4} R V (StrictOrderedSemiring.toSemiring.{u5} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u5} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u5} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u4} V _inst_2)] [_inst_4 : AddTorsor.{u4, u3} V P (AddCommGroup.toAddGroup.{u4} V _inst_2)] [_inst_5 : AddCommGroup.{u2} V'] [_inst_6 : Module.{u5, u2} R V' (StrictOrderedSemiring.toSemiring.{u5} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u5} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u5} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V' _inst_5)] [_inst_7 : AddTorsor.{u2, u1} V' P' (AddCommGroup.toAddGroup.{u2} V' _inst_5)] {s : AffineSubspace.{u5, u4, u3} R V P (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {f : AffineMap.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7}, (Function.Injective.{succ u3, succ u1} P P' (FunLike.coe.{max (max (max (succ u4) (succ u3)) (succ u2)) (succ u1), succ u3, succ u1} (AffineMap.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => P') _x) (AffineMap.funLike.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f)) -> (Iff (AffineSubspace.WOppSide.{u5, u2, u1} R V' P' _inst_1 _inst_5 _inst_6 _inst_7 (AffineSubspace.map.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 f s) (FunLike.coe.{max (max (max (succ u4) (succ u3)) (succ u2)) (succ u1), succ u3, succ u1} (AffineMap.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => P') _x) (AffineMap.funLike.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f x) (FunLike.coe.{max (max (max (succ u4) (succ u3)) (succ u2)) (succ u1), succ u3, succ u1} (AffineMap.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => P') _x) (AffineMap.funLike.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f y)) (AffineSubspace.WOppSide.{u5, u4, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y))
+<too large>
Case conversion may be inaccurate. Consider using '#align function.injective.w_opp_side_map_iff Function.Injective.wOppSide_map_iffₓ'. -/
theorem Function.Injective.wOppSide_map_iff {s : AffineSubspace R P} {x y : P} {f : P →ᵃ[R] P'}
(hf : Function.Injective f) : (s.map f).WOppSide (f x) (f y) ↔ s.WOppSide x y :=
@@ -184,10 +163,7 @@ theorem Function.Injective.wOppSide_map_iff {s : AffineSubspace R P} {x y : P} {
#align function.injective.w_opp_side_map_iff Function.Injective.wOppSide_map_iff
/- warning: function.injective.s_opp_side_map_iff -> Function.Injective.sOppSide_map_iff is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {V' : Type.{u3}} {P : Type.{u4}} {P' : Type.{u5}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u4} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] [_inst_5 : AddCommGroup.{u3} V'] [_inst_6 : Module.{u1, u3} R V' (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u3} V' _inst_5)] [_inst_7 : AddTorsor.{u3, u5} V' P' (AddCommGroup.toAddGroup.{u3} V' _inst_5)] {s : AffineSubspace.{u1, u2, u4} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {f : AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7}, (Function.Injective.{succ u4, succ u5} P P' (coeFn.{max (succ u2) (succ u4) (succ u3) (succ u5), max (succ u4) (succ u5)} (AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (fun (_x : AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) => P -> P') (AffineMap.hasCoeToFun.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f)) -> (Iff (AffineSubspace.SOppSide.{u1, u3, u5} R V' P' _inst_1 _inst_5 _inst_6 _inst_7 (AffineSubspace.map.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 f s) (coeFn.{max (succ u2) (succ u4) (succ u3) (succ u5), max (succ u4) (succ u5)} (AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (fun (_x : AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) => P -> P') (AffineMap.hasCoeToFun.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f x) (coeFn.{max (succ u2) (succ u4) (succ u3) (succ u5), max (succ u4) (succ u5)} (AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (fun (_x : AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) => P -> P') (AffineMap.hasCoeToFun.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f y)) (AffineSubspace.SOppSide.{u1, u2, u4} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y))
-but is expected to have type
- forall {R : Type.{u5}} {V : Type.{u4}} {V' : Type.{u2}} {P : Type.{u3}} {P' : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u5} R] [_inst_2 : AddCommGroup.{u4} V] [_inst_3 : Module.{u5, u4} R V (StrictOrderedSemiring.toSemiring.{u5} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u5} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u5} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u4} V _inst_2)] [_inst_4 : AddTorsor.{u4, u3} V P (AddCommGroup.toAddGroup.{u4} V _inst_2)] [_inst_5 : AddCommGroup.{u2} V'] [_inst_6 : Module.{u5, u2} R V' (StrictOrderedSemiring.toSemiring.{u5} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u5} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u5} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V' _inst_5)] [_inst_7 : AddTorsor.{u2, u1} V' P' (AddCommGroup.toAddGroup.{u2} V' _inst_5)] {s : AffineSubspace.{u5, u4, u3} R V P (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {f : AffineMap.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7}, (Function.Injective.{succ u3, succ u1} P P' (FunLike.coe.{max (max (max (succ u4) (succ u3)) (succ u2)) (succ u1), succ u3, succ u1} (AffineMap.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => P') _x) (AffineMap.funLike.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f)) -> (Iff (AffineSubspace.SOppSide.{u5, u2, u1} R V' P' _inst_1 _inst_5 _inst_6 _inst_7 (AffineSubspace.map.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 f s) (FunLike.coe.{max (max (max (succ u4) (succ u3)) (succ u2)) (succ u1), succ u3, succ u1} (AffineMap.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => P') _x) (AffineMap.funLike.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f x) (FunLike.coe.{max (max (max (succ u4) (succ u3)) (succ u2)) (succ u1), succ u3, succ u1} (AffineMap.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => P') _x) (AffineMap.funLike.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f y)) (AffineSubspace.SOppSide.{u5, u4, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y))
+<too large>
Case conversion may be inaccurate. Consider using '#align function.injective.s_opp_side_map_iff Function.Injective.sOppSide_map_iffₓ'. -/
theorem Function.Injective.sOppSide_map_iff {s : AffineSubspace R P} {x y : P} {f : P →ᵃ[R] P'}
(hf : Function.Injective f) : (s.map f).SOppSide (f x) (f y) ↔ s.SOppSide x y := by
@@ -195,10 +171,7 @@ theorem Function.Injective.sOppSide_map_iff {s : AffineSubspace R P} {x y : P} {
#align function.injective.s_opp_side_map_iff Function.Injective.sOppSide_map_iff
/- warning: affine_equiv.w_opp_side_map_iff -> AffineEquiv.wOppSide_map_iff is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {V' : Type.{u3}} {P : Type.{u4}} {P' : Type.{u5}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u4} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] [_inst_5 : AddCommGroup.{u3} V'] [_inst_6 : Module.{u1, u3} R V' (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u3} V' _inst_5)] [_inst_7 : AddTorsor.{u3, u5} V' P' (AddCommGroup.toAddGroup.{u3} V' _inst_5)] {s : AffineSubspace.{u1, u2, u4} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} (f : AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7), Iff (AffineSubspace.WOppSide.{u1, u3, u5} R V' P' _inst_1 _inst_5 _inst_6 _inst_7 (AffineSubspace.map.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 ((fun (a : Sort.{max (succ u4) (succ u5) (succ u2) (succ u3)}) (b : Sort.{max (succ u2) (succ u4) (succ u3) (succ u5)}) [self : HasLiftT.{max (succ u4) (succ u5) (succ u2) (succ u3), max (succ u2) (succ u4) (succ u3) (succ u5)} a b] => self.0) (AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (HasLiftT.mk.{max (succ u4) (succ u5) (succ u2) (succ u3), max (succ u2) (succ u4) (succ u3) (succ u5)} (AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (CoeTCₓ.coe.{max (succ u4) (succ u5) (succ u2) (succ u3), max (succ u2) (succ u4) (succ u3) (succ u5)} (AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (coeBase.{max (succ u4) (succ u5) (succ u2) (succ u3), max (succ u2) (succ u4) (succ u3) (succ u5)} (AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (AffineEquiv.AffineMap.hasCoe.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7)))) f) s) (coeFn.{max (succ u4) (succ u5) (succ u2) (succ u3), max (succ u4) (succ u5)} (AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (fun (_x : AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) => P -> P') (AffineEquiv.hasCoeToFun.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f x) (coeFn.{max (succ u4) (succ u5) (succ u2) (succ u3), max (succ u4) (succ u5)} (AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (fun (_x : AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) => P -> P') (AffineEquiv.hasCoeToFun.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f y)) (AffineSubspace.WOppSide.{u1, u2, u4} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y)
-but is expected to have type
- forall {R : Type.{u5}} {V : Type.{u4}} {V' : Type.{u1}} {P : Type.{u3}} {P' : Type.{u2}} [_inst_1 : StrictOrderedCommRing.{u5} R] [_inst_2 : AddCommGroup.{u4} V] [_inst_3 : Module.{u5, u4} R V (StrictOrderedSemiring.toSemiring.{u5} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u5} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u5} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u4} V _inst_2)] [_inst_4 : AddTorsor.{u4, u3} V P (AddCommGroup.toAddGroup.{u4} V _inst_2)] [_inst_5 : AddCommGroup.{u1} V'] [_inst_6 : Module.{u5, u1} R V' (StrictOrderedSemiring.toSemiring.{u5} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u5} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u5} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} V' _inst_5)] [_inst_7 : AddTorsor.{u1, u2} V' P' (AddCommGroup.toAddGroup.{u1} V' _inst_5)] {s : AffineSubspace.{u5, u4, u3} R V P (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} (f : AffineEquiv.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7), Iff (AffineSubspace.WOppSide.{u5, u1, u2} R V' ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineEquiv._hyg.1470 : P) => P') x) _inst_1 _inst_5 _inst_6 _inst_7 (AffineSubspace.map.{u5, u4, u3, u1, u2} R V P V' ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineEquiv._hyg.1470 : P) => P') x) (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 (AffineEquiv.toAffineMap.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 f) s) (FunLike.coe.{max (max (max (succ u3) (succ u2)) (succ u4)) (succ u1), succ u3, succ u2} (AffineEquiv.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineEquiv._hyg.1470 : P) => P') _x) (EmbeddingLike.toFunLike.{max (max (max (succ u3) (succ u2)) (succ u4)) (succ u1), succ u3, succ u2} (AffineEquiv.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P P' (EquivLike.toEmbeddingLike.{max (max (max (succ u3) (succ u2)) (succ u4)) (succ u1), succ u3, succ u2} (AffineEquiv.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P P' (AffineEquiv.equivLike.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7))) f x) (FunLike.coe.{max (max (max (succ u3) (succ u2)) (succ u4)) (succ u1), succ u3, succ u2} (AffineEquiv.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineEquiv._hyg.1470 : P) => P') _x) (EmbeddingLike.toFunLike.{max (max (max (succ u3) (succ u2)) (succ u4)) (succ u1), succ u3, succ u2} (AffineEquiv.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P P' (EquivLike.toEmbeddingLike.{max (max (max (succ u3) (succ u2)) (succ u4)) (succ u1), succ u3, succ u2} (AffineEquiv.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P P' (AffineEquiv.equivLike.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7))) f y)) (AffineSubspace.WOppSide.{u5, u4, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y)
+<too large>
Case conversion may be inaccurate. Consider using '#align affine_equiv.w_opp_side_map_iff AffineEquiv.wOppSide_map_iffₓ'. -/
@[simp]
theorem AffineEquiv.wOppSide_map_iff {s : AffineSubspace R P} {x y : P} (f : P ≃ᵃ[R] P') :
@@ -207,10 +180,7 @@ theorem AffineEquiv.wOppSide_map_iff {s : AffineSubspace R P} {x y : P} (f : P
#align affine_equiv.w_opp_side_map_iff AffineEquiv.wOppSide_map_iff
/- warning: affine_equiv.s_opp_side_map_iff -> AffineEquiv.sOppSide_map_iff is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {V' : Type.{u3}} {P : Type.{u4}} {P' : Type.{u5}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u4} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] [_inst_5 : AddCommGroup.{u3} V'] [_inst_6 : Module.{u1, u3} R V' (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u3} V' _inst_5)] [_inst_7 : AddTorsor.{u3, u5} V' P' (AddCommGroup.toAddGroup.{u3} V' _inst_5)] {s : AffineSubspace.{u1, u2, u4} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} (f : AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7), Iff (AffineSubspace.SOppSide.{u1, u3, u5} R V' P' _inst_1 _inst_5 _inst_6 _inst_7 (AffineSubspace.map.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 ((fun (a : Sort.{max (succ u4) (succ u5) (succ u2) (succ u3)}) (b : Sort.{max (succ u2) (succ u4) (succ u3) (succ u5)}) [self : HasLiftT.{max (succ u4) (succ u5) (succ u2) (succ u3), max (succ u2) (succ u4) (succ u3) (succ u5)} a b] => self.0) (AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (HasLiftT.mk.{max (succ u4) (succ u5) (succ u2) (succ u3), max (succ u2) (succ u4) (succ u3) (succ u5)} (AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (CoeTCₓ.coe.{max (succ u4) (succ u5) (succ u2) (succ u3), max (succ u2) (succ u4) (succ u3) (succ u5)} (AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (coeBase.{max (succ u4) (succ u5) (succ u2) (succ u3), max (succ u2) (succ u4) (succ u3) (succ u5)} (AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (AffineEquiv.AffineMap.hasCoe.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7)))) f) s) (coeFn.{max (succ u4) (succ u5) (succ u2) (succ u3), max (succ u4) (succ u5)} (AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (fun (_x : AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) => P -> P') (AffineEquiv.hasCoeToFun.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f x) (coeFn.{max (succ u4) (succ u5) (succ u2) (succ u3), max (succ u4) (succ u5)} (AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (fun (_x : AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) => P -> P') (AffineEquiv.hasCoeToFun.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f y)) (AffineSubspace.SOppSide.{u1, u2, u4} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y)
-but is expected to have type
- forall {R : Type.{u5}} {V : Type.{u4}} {V' : Type.{u1}} {P : Type.{u3}} {P' : Type.{u2}} [_inst_1 : StrictOrderedCommRing.{u5} R] [_inst_2 : AddCommGroup.{u4} V] [_inst_3 : Module.{u5, u4} R V (StrictOrderedSemiring.toSemiring.{u5} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u5} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u5} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u4} V _inst_2)] [_inst_4 : AddTorsor.{u4, u3} V P (AddCommGroup.toAddGroup.{u4} V _inst_2)] [_inst_5 : AddCommGroup.{u1} V'] [_inst_6 : Module.{u5, u1} R V' (StrictOrderedSemiring.toSemiring.{u5} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u5} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u5} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} V' _inst_5)] [_inst_7 : AddTorsor.{u1, u2} V' P' (AddCommGroup.toAddGroup.{u1} V' _inst_5)] {s : AffineSubspace.{u5, u4, u3} R V P (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} (f : AffineEquiv.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7), Iff (AffineSubspace.SOppSide.{u5, u1, u2} R V' ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineEquiv._hyg.1470 : P) => P') x) _inst_1 _inst_5 _inst_6 _inst_7 (AffineSubspace.map.{u5, u4, u3, u1, u2} R V P V' ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineEquiv._hyg.1470 : P) => P') x) (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 (AffineEquiv.toAffineMap.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 f) s) (FunLike.coe.{max (max (max (succ u3) (succ u2)) (succ u4)) (succ u1), succ u3, succ u2} (AffineEquiv.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineEquiv._hyg.1470 : P) => P') _x) (EmbeddingLike.toFunLike.{max (max (max (succ u3) (succ u2)) (succ u4)) (succ u1), succ u3, succ u2} (AffineEquiv.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P P' (EquivLike.toEmbeddingLike.{max (max (max (succ u3) (succ u2)) (succ u4)) (succ u1), succ u3, succ u2} (AffineEquiv.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P P' (AffineEquiv.equivLike.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7))) f x) (FunLike.coe.{max (max (max (succ u3) (succ u2)) (succ u4)) (succ u1), succ u3, succ u2} (AffineEquiv.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineEquiv._hyg.1470 : P) => P') _x) (EmbeddingLike.toFunLike.{max (max (max (succ u3) (succ u2)) (succ u4)) (succ u1), succ u3, succ u2} (AffineEquiv.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P P' (EquivLike.toEmbeddingLike.{max (max (max (succ u3) (succ u2)) (succ u4)) (succ u1), succ u3, succ u2} (AffineEquiv.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P P' (AffineEquiv.equivLike.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7))) f y)) (AffineSubspace.SOppSide.{u5, u4, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y)
+<too large>
Case conversion may be inaccurate. Consider using '#align affine_equiv.s_opp_side_map_iff AffineEquiv.sOppSide_map_iffₓ'. -/
@[simp]
theorem AffineEquiv.sOppSide_map_iff {s : AffineSubspace R P} {x y : P} (f : P ≃ᵃ[R] P') :
@@ -624,10 +594,7 @@ theorem sOppSide_vadd_right_iff {s : AffineSubspace R P} {x y : P} {v : V} (hv :
#align affine_subspace.s_opp_side_vadd_right_iff AffineSubspace.sOppSide_vadd_right_iff
/- warning: affine_subspace.w_same_side_smul_vsub_vadd_left -> AffineSubspace.wSameSide_smul_vsub_vadd_left is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {p₁ : P} {p₂ : P} (x : P), (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)) p₁ s) -> (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)) p₂ s) -> (forall {t : R}, (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{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 (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))))))))) t) -> (AffineSubspace.WSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s (VAdd.vadd.{u2, u3} V P (AddAction.toHasVadd.{u2, u3} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4)) (SMul.smul.{u1, u2} R V (SMulZeroClass.toHasSmul.{u1, u2} R V (AddZeroClass.toHasZero.{u2} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R V (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} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R V (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u2} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3)))) t (VSub.vsub.{u2, u3} V P (AddTorsor.toHasVsub.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p₁)) p₂) x))
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {p₁ : P} {p₂ : P} (x : P), (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4)) p₁ s) -> (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4)) p₂ s) -> (forall {t : R}, (LE.le.{u3} R (Preorder.toLE.{u3} R (PartialOrder.toPreorder.{u3} R (StrictOrderedRing.toPartialOrder.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)))) (OfNat.ofNat.{u3} R 0 (Zero.toOfNat0.{u3} R (CommMonoidWithZero.toZero.{u3} R (CommSemiring.toCommMonoidWithZero.{u3} R (StrictOrderedCommSemiring.toCommSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1)))))) t) -> (AffineSubspace.WSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s (HVAdd.hVAdd.{u2, u1, u1} V P P (instHVAdd.{u2, u1} V P (AddAction.toVAdd.{u2, u1} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4))) (HSMul.hSMul.{u3, u2, u2} R V V (instHSMul.{u3, u2} R V (SMulZeroClass.toSMul.{u3, u2} R V (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (SMulWithZero.toSMulZeroClass.{u3, u2} R V (CommMonoidWithZero.toZero.{u3} R (CommSemiring.toCommMonoidWithZero.{u3} R (StrictOrderedCommSemiring.toCommSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1)))) (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (MulActionWithZero.toSMulWithZero.{u3, u2} R V (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1)))) (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (Module.toMulActionWithZero.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3))))) t (VSub.vsub.{u2, u1} V P (AddTorsor.toVSub.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p₁)) p₂) x))
+<too large>
Case conversion may be inaccurate. Consider using '#align affine_subspace.w_same_side_smul_vsub_vadd_left AffineSubspace.wSameSide_smul_vsub_vadd_leftₓ'. -/
theorem wSameSide_smul_vsub_vadd_left {s : AffineSubspace R P} {p₁ p₂ : P} (x : P) (hp₁ : p₁ ∈ s)
(hp₂ : p₂ ∈ s) {t : R} (ht : 0 ≤ t) : s.WSameSide (t • (x -ᵥ p₁) +ᵥ p₂) x :=
@@ -638,10 +605,7 @@ theorem wSameSide_smul_vsub_vadd_left {s : AffineSubspace R P} {p₁ p₂ : P} (
#align affine_subspace.w_same_side_smul_vsub_vadd_left AffineSubspace.wSameSide_smul_vsub_vadd_left
/- warning: affine_subspace.w_same_side_smul_vsub_vadd_right -> AffineSubspace.wSameSide_smul_vsub_vadd_right is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {p₁ : P} {p₂ : P} (x : P), (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)) p₁ s) -> (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)) p₂ s) -> (forall {t : R}, (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{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 (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))))))))) t) -> (AffineSubspace.WSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x (VAdd.vadd.{u2, u3} V P (AddAction.toHasVadd.{u2, u3} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4)) (SMul.smul.{u1, u2} R V (SMulZeroClass.toHasSmul.{u1, u2} R V (AddZeroClass.toHasZero.{u2} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R V (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} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R V (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u2} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3)))) t (VSub.vsub.{u2, u3} V P (AddTorsor.toHasVsub.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p₁)) p₂)))
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {p₁ : P} {p₂ : P} (x : P), (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4)) p₁ s) -> (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4)) p₂ s) -> (forall {t : R}, (LE.le.{u3} R (Preorder.toLE.{u3} R (PartialOrder.toPreorder.{u3} R (StrictOrderedRing.toPartialOrder.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)))) (OfNat.ofNat.{u3} R 0 (Zero.toOfNat0.{u3} R (CommMonoidWithZero.toZero.{u3} R (CommSemiring.toCommMonoidWithZero.{u3} R (StrictOrderedCommSemiring.toCommSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1)))))) t) -> (AffineSubspace.WSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x (HVAdd.hVAdd.{u2, u1, u1} V P P (instHVAdd.{u2, u1} V P (AddAction.toVAdd.{u2, u1} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4))) (HSMul.hSMul.{u3, u2, u2} R V V (instHSMul.{u3, u2} R V (SMulZeroClass.toSMul.{u3, u2} R V (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (SMulWithZero.toSMulZeroClass.{u3, u2} R V (CommMonoidWithZero.toZero.{u3} R (CommSemiring.toCommMonoidWithZero.{u3} R (StrictOrderedCommSemiring.toCommSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1)))) (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (MulActionWithZero.toSMulWithZero.{u3, u2} R V (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1)))) (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (Module.toMulActionWithZero.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3))))) t (VSub.vsub.{u2, u1} V P (AddTorsor.toVSub.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p₁)) p₂)))
+<too large>
Case conversion may be inaccurate. Consider using '#align affine_subspace.w_same_side_smul_vsub_vadd_right AffineSubspace.wSameSide_smul_vsub_vadd_rightₓ'. -/
theorem wSameSide_smul_vsub_vadd_right {s : AffineSubspace R P} {p₁ p₂ : P} (x : P) (hp₁ : p₁ ∈ s)
(hp₂ : p₂ ∈ s) {t : R} (ht : 0 ≤ t) : s.WSameSide x (t • (x -ᵥ p₁) +ᵥ p₂) :=
@@ -649,10 +613,7 @@ theorem wSameSide_smul_vsub_vadd_right {s : AffineSubspace R P} {p₁ p₂ : P}
#align affine_subspace.w_same_side_smul_vsub_vadd_right AffineSubspace.wSameSide_smul_vsub_vadd_right
/- warning: affine_subspace.w_same_side_line_map_left -> AffineSubspace.wSameSide_lineMap_left is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} (y : P), (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)) x s) -> (forall {t : R}, (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{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 (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))))))))) t) -> (AffineSubspace.WSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s (coeFn.{max (succ u1) (succ u2) (succ u3), max (succ u1) (succ u3)} (AffineMap.{u1, u1, u1, u2, u3} R R R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (addGroupIsAddTorsor.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))))) _inst_2 _inst_3 _inst_4) (fun (_x : AffineMap.{u1, u1, u1, u2, u3} R R R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (addGroupIsAddTorsor.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))))) _inst_2 _inst_3 _inst_4) => R -> P) (AffineMap.hasCoeToFun.{u1, u1, u1, u2, u3} R R R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (addGroupIsAddTorsor.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))))) _inst_2 _inst_3 _inst_4) (AffineMap.lineMap.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 x y) t) y))
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} (y : P), (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4)) x s) -> (forall {t : R}, (LE.le.{u3} R (Preorder.toLE.{u3} R (PartialOrder.toPreorder.{u3} R (StrictOrderedRing.toPartialOrder.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)))) (OfNat.ofNat.{u3} R 0 (Zero.toOfNat0.{u3} R (CommMonoidWithZero.toZero.{u3} R (CommSemiring.toCommMonoidWithZero.{u3} R (StrictOrderedCommSemiring.toCommSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1)))))) t) -> (AffineSubspace.WSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), succ u3, succ u1} (AffineMap.{u3, u3, u3, u2, u1} R R R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) (Ring.toAddCommGroup.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)))) (addGroupIsAddTorsor.{u3} R (AddGroupWithOne.toAddGroup.{u3} R (Ring.toAddGroupWithOne.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))))) _inst_2 _inst_3 _inst_4) R (fun (_x : R) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : R) => P) _x) (AffineMap.funLike.{u3, u3, u3, u2, u1} R R R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) (Ring.toAddCommGroup.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)))) (addGroupIsAddTorsor.{u3} R (AddGroupWithOne.toAddGroup.{u3} R (Ring.toAddGroupWithOne.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))))) _inst_2 _inst_3 _inst_4) (AffineMap.lineMap.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 x y) t) y))
+<too large>
Case conversion may be inaccurate. Consider using '#align affine_subspace.w_same_side_line_map_left AffineSubspace.wSameSide_lineMap_leftₓ'. -/
theorem wSameSide_lineMap_left {s : AffineSubspace R P} {x : P} (y : P) (h : x ∈ s) {t : R}
(ht : 0 ≤ t) : s.WSameSide (lineMap x y t) y :=
@@ -660,10 +621,7 @@ theorem wSameSide_lineMap_left {s : AffineSubspace R P} {x : P} (y : P) (h : x
#align affine_subspace.w_same_side_line_map_left AffineSubspace.wSameSide_lineMap_left
/- warning: affine_subspace.w_same_side_line_map_right -> AffineSubspace.wSameSide_lineMap_right is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} (y : P), (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)) x s) -> (forall {t : R}, (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{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 (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))))))))) t) -> (AffineSubspace.WSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s y (coeFn.{max (succ u1) (succ u2) (succ u3), max (succ u1) (succ u3)} (AffineMap.{u1, u1, u1, u2, u3} R R R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (addGroupIsAddTorsor.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))))) _inst_2 _inst_3 _inst_4) (fun (_x : AffineMap.{u1, u1, u1, u2, u3} R R R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (addGroupIsAddTorsor.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))))) _inst_2 _inst_3 _inst_4) => R -> P) (AffineMap.hasCoeToFun.{u1, u1, u1, u2, u3} R R R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (addGroupIsAddTorsor.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))))) _inst_2 _inst_3 _inst_4) (AffineMap.lineMap.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 x y) t)))
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} (y : P), (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4)) x s) -> (forall {t : R}, (LE.le.{u3} R (Preorder.toLE.{u3} R (PartialOrder.toPreorder.{u3} R (StrictOrderedRing.toPartialOrder.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)))) (OfNat.ofNat.{u3} R 0 (Zero.toOfNat0.{u3} R (CommMonoidWithZero.toZero.{u3} R (CommSemiring.toCommMonoidWithZero.{u3} R (StrictOrderedCommSemiring.toCommSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1)))))) t) -> (AffineSubspace.WSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s y (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), succ u3, succ u1} (AffineMap.{u3, u3, u3, u2, u1} R R R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) (Ring.toAddCommGroup.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)))) (addGroupIsAddTorsor.{u3} R (AddGroupWithOne.toAddGroup.{u3} R (Ring.toAddGroupWithOne.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))))) _inst_2 _inst_3 _inst_4) R (fun (_x : R) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : R) => P) _x) (AffineMap.funLike.{u3, u3, u3, u2, u1} R R R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) (Ring.toAddCommGroup.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)))) (addGroupIsAddTorsor.{u3} R (AddGroupWithOne.toAddGroup.{u3} R (Ring.toAddGroupWithOne.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))))) _inst_2 _inst_3 _inst_4) (AffineMap.lineMap.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 x y) t)))
+<too large>
Case conversion may be inaccurate. Consider using '#align affine_subspace.w_same_side_line_map_right AffineSubspace.wSameSide_lineMap_rightₓ'. -/
theorem wSameSide_lineMap_right {s : AffineSubspace R P} {x : P} (y : P) (h : x ∈ s) {t : R}
(ht : 0 ≤ t) : s.WSameSide y (lineMap x y t) :=
@@ -671,10 +629,7 @@ theorem wSameSide_lineMap_right {s : AffineSubspace R P} {x : P} (y : P) (h : x
#align affine_subspace.w_same_side_line_map_right AffineSubspace.wSameSide_lineMap_right
/- warning: affine_subspace.w_opp_side_smul_vsub_vadd_left -> AffineSubspace.wOppSide_smul_vsub_vadd_left is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {p₁ : P} {p₂ : P} (x : P), (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)) p₁ s) -> (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)) p₂ s) -> (forall {t : R}, (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))) t (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))))))))))) -> (AffineSubspace.WOppSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s (VAdd.vadd.{u2, u3} V P (AddAction.toHasVadd.{u2, u3} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4)) (SMul.smul.{u1, u2} R V (SMulZeroClass.toHasSmul.{u1, u2} R V (AddZeroClass.toHasZero.{u2} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R V (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} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R V (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u2} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3)))) t (VSub.vsub.{u2, u3} V P (AddTorsor.toHasVsub.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p₁)) p₂) x))
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {p₁ : P} {p₂ : P} (x : P), (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4)) p₁ s) -> (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4)) p₂ s) -> (forall {t : R}, (LE.le.{u3} R (Preorder.toLE.{u3} R (PartialOrder.toPreorder.{u3} R (StrictOrderedRing.toPartialOrder.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)))) t (OfNat.ofNat.{u3} R 0 (Zero.toOfNat0.{u3} R (CommMonoidWithZero.toZero.{u3} R (CommSemiring.toCommMonoidWithZero.{u3} R (StrictOrderedCommSemiring.toCommSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))))))) -> (AffineSubspace.WOppSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s (HVAdd.hVAdd.{u2, u1, u1} V P P (instHVAdd.{u2, u1} V P (AddAction.toVAdd.{u2, u1} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4))) (HSMul.hSMul.{u3, u2, u2} R V V (instHSMul.{u3, u2} R V (SMulZeroClass.toSMul.{u3, u2} R V (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (SMulWithZero.toSMulZeroClass.{u3, u2} R V (CommMonoidWithZero.toZero.{u3} R (CommSemiring.toCommMonoidWithZero.{u3} R (StrictOrderedCommSemiring.toCommSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1)))) (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (MulActionWithZero.toSMulWithZero.{u3, u2} R V (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1)))) (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (Module.toMulActionWithZero.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3))))) t (VSub.vsub.{u2, u1} V P (AddTorsor.toVSub.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p₁)) p₂) x))
+<too large>
Case conversion may be inaccurate. Consider using '#align affine_subspace.w_opp_side_smul_vsub_vadd_left AffineSubspace.wOppSide_smul_vsub_vadd_leftₓ'. -/
theorem wOppSide_smul_vsub_vadd_left {s : AffineSubspace R P} {p₁ p₂ : P} (x : P) (hp₁ : p₁ ∈ s)
(hp₂ : p₂ ∈ s) {t : R} (ht : t ≤ 0) : s.WOppSide (t • (x -ᵥ p₁) +ᵥ p₂) x :=
@@ -685,10 +640,7 @@ theorem wOppSide_smul_vsub_vadd_left {s : AffineSubspace R P} {p₁ p₂ : P} (x
#align affine_subspace.w_opp_side_smul_vsub_vadd_left AffineSubspace.wOppSide_smul_vsub_vadd_left
/- warning: affine_subspace.w_opp_side_smul_vsub_vadd_right -> AffineSubspace.wOppSide_smul_vsub_vadd_right is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {p₁ : P} {p₂ : P} (x : P), (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)) p₁ s) -> (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)) p₂ s) -> (forall {t : R}, (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))) t (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))))))))))) -> (AffineSubspace.WOppSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x (VAdd.vadd.{u2, u3} V P (AddAction.toHasVadd.{u2, u3} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4)) (SMul.smul.{u1, u2} R V (SMulZeroClass.toHasSmul.{u1, u2} R V (AddZeroClass.toHasZero.{u2} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R V (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} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R V (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u2} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3)))) t (VSub.vsub.{u2, u3} V P (AddTorsor.toHasVsub.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p₁)) p₂)))
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {p₁ : P} {p₂ : P} (x : P), (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4)) p₁ s) -> (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4)) p₂ s) -> (forall {t : R}, (LE.le.{u3} R (Preorder.toLE.{u3} R (PartialOrder.toPreorder.{u3} R (StrictOrderedRing.toPartialOrder.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)))) t (OfNat.ofNat.{u3} R 0 (Zero.toOfNat0.{u3} R (CommMonoidWithZero.toZero.{u3} R (CommSemiring.toCommMonoidWithZero.{u3} R (StrictOrderedCommSemiring.toCommSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))))))) -> (AffineSubspace.WOppSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x (HVAdd.hVAdd.{u2, u1, u1} V P P (instHVAdd.{u2, u1} V P (AddAction.toVAdd.{u2, u1} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4))) (HSMul.hSMul.{u3, u2, u2} R V V (instHSMul.{u3, u2} R V (SMulZeroClass.toSMul.{u3, u2} R V (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (SMulWithZero.toSMulZeroClass.{u3, u2} R V (CommMonoidWithZero.toZero.{u3} R (CommSemiring.toCommMonoidWithZero.{u3} R (StrictOrderedCommSemiring.toCommSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1)))) (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (MulActionWithZero.toSMulWithZero.{u3, u2} R V (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1)))) (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (Module.toMulActionWithZero.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3))))) t (VSub.vsub.{u2, u1} V P (AddTorsor.toVSub.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p₁)) p₂)))
+<too large>
Case conversion may be inaccurate. Consider using '#align affine_subspace.w_opp_side_smul_vsub_vadd_right AffineSubspace.wOppSide_smul_vsub_vadd_rightₓ'. -/
theorem wOppSide_smul_vsub_vadd_right {s : AffineSubspace R P} {p₁ p₂ : P} (x : P) (hp₁ : p₁ ∈ s)
(hp₂ : p₂ ∈ s) {t : R} (ht : t ≤ 0) : s.WOppSide x (t • (x -ᵥ p₁) +ᵥ p₂) :=
@@ -696,10 +648,7 @@ theorem wOppSide_smul_vsub_vadd_right {s : AffineSubspace R P} {p₁ p₂ : P} (
#align affine_subspace.w_opp_side_smul_vsub_vadd_right AffineSubspace.wOppSide_smul_vsub_vadd_right
/- warning: affine_subspace.w_opp_side_line_map_left -> AffineSubspace.wOppSide_lineMap_left is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} (y : P), (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)) x s) -> (forall {t : R}, (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))) t (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))))))))))) -> (AffineSubspace.WOppSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s (coeFn.{max (succ u1) (succ u2) (succ u3), max (succ u1) (succ u3)} (AffineMap.{u1, u1, u1, u2, u3} R R R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (addGroupIsAddTorsor.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))))) _inst_2 _inst_3 _inst_4) (fun (_x : AffineMap.{u1, u1, u1, u2, u3} R R R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (addGroupIsAddTorsor.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))))) _inst_2 _inst_3 _inst_4) => R -> P) (AffineMap.hasCoeToFun.{u1, u1, u1, u2, u3} R R R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (addGroupIsAddTorsor.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))))) _inst_2 _inst_3 _inst_4) (AffineMap.lineMap.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 x y) t) y))
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} (y : P), (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4)) x s) -> (forall {t : R}, (LE.le.{u3} R (Preorder.toLE.{u3} R (PartialOrder.toPreorder.{u3} R (StrictOrderedRing.toPartialOrder.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)))) t (OfNat.ofNat.{u3} R 0 (Zero.toOfNat0.{u3} R (CommMonoidWithZero.toZero.{u3} R (CommSemiring.toCommMonoidWithZero.{u3} R (StrictOrderedCommSemiring.toCommSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))))))) -> (AffineSubspace.WOppSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), succ u3, succ u1} (AffineMap.{u3, u3, u3, u2, u1} R R R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) (Ring.toAddCommGroup.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)))) (addGroupIsAddTorsor.{u3} R (AddGroupWithOne.toAddGroup.{u3} R (Ring.toAddGroupWithOne.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))))) _inst_2 _inst_3 _inst_4) R (fun (_x : R) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : R) => P) _x) (AffineMap.funLike.{u3, u3, u3, u2, u1} R R R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) (Ring.toAddCommGroup.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)))) (addGroupIsAddTorsor.{u3} R (AddGroupWithOne.toAddGroup.{u3} R (Ring.toAddGroupWithOne.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))))) _inst_2 _inst_3 _inst_4) (AffineMap.lineMap.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 x y) t) y))
+<too large>
Case conversion may be inaccurate. Consider using '#align affine_subspace.w_opp_side_line_map_left AffineSubspace.wOppSide_lineMap_leftₓ'. -/
theorem wOppSide_lineMap_left {s : AffineSubspace R P} {x : P} (y : P) (h : x ∈ s) {t : R}
(ht : t ≤ 0) : s.WOppSide (lineMap x y t) y :=
@@ -707,10 +656,7 @@ theorem wOppSide_lineMap_left {s : AffineSubspace R P} {x : P} (y : P) (h : x
#align affine_subspace.w_opp_side_line_map_left AffineSubspace.wOppSide_lineMap_left
/- warning: affine_subspace.w_opp_side_line_map_right -> AffineSubspace.wOppSide_lineMap_right is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} (y : P), (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)) x s) -> (forall {t : R}, (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))) t (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))))))))))) -> (AffineSubspace.WOppSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s y (coeFn.{max (succ u1) (succ u2) (succ u3), max (succ u1) (succ u3)} (AffineMap.{u1, u1, u1, u2, u3} R R R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (addGroupIsAddTorsor.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))))) _inst_2 _inst_3 _inst_4) (fun (_x : AffineMap.{u1, u1, u1, u2, u3} R R R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (addGroupIsAddTorsor.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))))) _inst_2 _inst_3 _inst_4) => R -> P) (AffineMap.hasCoeToFun.{u1, u1, u1, u2, u3} R R R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (addGroupIsAddTorsor.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))))) _inst_2 _inst_3 _inst_4) (AffineMap.lineMap.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 x y) t)))
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} (y : P), (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4)) x s) -> (forall {t : R}, (LE.le.{u3} R (Preorder.toLE.{u3} R (PartialOrder.toPreorder.{u3} R (StrictOrderedRing.toPartialOrder.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)))) t (OfNat.ofNat.{u3} R 0 (Zero.toOfNat0.{u3} R (CommMonoidWithZero.toZero.{u3} R (CommSemiring.toCommMonoidWithZero.{u3} R (StrictOrderedCommSemiring.toCommSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))))))) -> (AffineSubspace.WOppSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s y (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), succ u3, succ u1} (AffineMap.{u3, u3, u3, u2, u1} R R R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) (Ring.toAddCommGroup.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)))) (addGroupIsAddTorsor.{u3} R (AddGroupWithOne.toAddGroup.{u3} R (Ring.toAddGroupWithOne.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))))) _inst_2 _inst_3 _inst_4) R (fun (_x : R) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : R) => P) _x) (AffineMap.funLike.{u3, u3, u3, u2, u1} R R R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) (Ring.toAddCommGroup.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)))) (addGroupIsAddTorsor.{u3} R (AddGroupWithOne.toAddGroup.{u3} R (Ring.toAddGroupWithOne.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))))) _inst_2 _inst_3 _inst_4) (AffineMap.lineMap.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 x y) t)))
+<too large>
Case conversion may be inaccurate. Consider using '#align affine_subspace.w_opp_side_line_map_right AffineSubspace.wOppSide_lineMap_rightₓ'. -/
theorem wOppSide_lineMap_right {s : AffineSubspace R P} {x : P} (y : P) (h : x ∈ s) {t : R}
(ht : t ≤ 0) : s.WOppSide y (lineMap x y t) :=
@@ -831,10 +777,7 @@ theorem not_sOppSide_self (s : AffineSubspace R P) (x : P) : ¬s.SOppSide x x :=
#align affine_subspace.not_s_opp_side_self AffineSubspace.not_sOppSide_self
/- warning: affine_subspace.w_same_side_iff_exists_left -> AffineSubspace.wSameSide_iff_exists_left is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {p₁ : P}, (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₁ s) -> (Iff (AffineSubspace.WSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) (Or (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s) (Exists.{succ u3} P (fun (p₂ : P) => Exists.{0} (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₂ s) (fun (H : Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₂ s) => SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3 (VSub.vsub.{u2, u3} V P (AddTorsor.toHasVsub.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p₁) (VSub.vsub.{u2, u3} V P (AddTorsor.toHasVsub.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) y p₂))))))
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {p₁ : P}, (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₁ s) -> (Iff (AffineSubspace.WSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) (Or (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s) (Exists.{succ u1} P (fun (p₂ : P) => And (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₂ s) (SameRay.{u3, u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1))) V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3 (VSub.vsub.{u2, u1} V P (AddTorsor.toVSub.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p₁) (VSub.vsub.{u2, u1} V P (AddTorsor.toVSub.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) y p₂))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align affine_subspace.w_same_side_iff_exists_left AffineSubspace.wSameSide_iff_exists_leftₓ'. -/
theorem wSameSide_iff_exists_left {s : AffineSubspace R P} {x y p₁ : P} (h : p₁ ∈ s) :
s.WSameSide x y ↔ x ∈ s ∨ ∃ p₂ ∈ s, SameRay R (x -ᵥ p₁) (y -ᵥ p₂) :=
@@ -859,10 +802,7 @@ theorem wSameSide_iff_exists_left {s : AffineSubspace R P} {x y p₁ : P} (h : p
#align affine_subspace.w_same_side_iff_exists_left AffineSubspace.wSameSide_iff_exists_left
/- warning: affine_subspace.w_same_side_iff_exists_right -> AffineSubspace.wSameSide_iff_exists_right is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {p₂ : P}, (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₂ s) -> (Iff (AffineSubspace.WSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) (Or (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s) (Exists.{succ u3} P (fun (p₁ : P) => Exists.{0} (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₁ s) (fun (H : Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₁ s) => SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3 (VSub.vsub.{u2, u3} V P (AddTorsor.toHasVsub.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p₁) (VSub.vsub.{u2, u3} V P (AddTorsor.toHasVsub.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) y p₂))))))
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {p₂ : P}, (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₂ s) -> (Iff (AffineSubspace.WSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) (Or (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s) (Exists.{succ u1} P (fun (p₁ : P) => And (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₁ s) (SameRay.{u3, u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1))) V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3 (VSub.vsub.{u2, u1} V P (AddTorsor.toVSub.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p₁) (VSub.vsub.{u2, u1} V P (AddTorsor.toVSub.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) y p₂))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align affine_subspace.w_same_side_iff_exists_right AffineSubspace.wSameSide_iff_exists_rightₓ'. -/
theorem wSameSide_iff_exists_right {s : AffineSubspace R P} {x y p₂ : P} (h : p₂ ∈ s) :
s.WSameSide x y ↔ y ∈ s ∨ ∃ p₁ ∈ s, SameRay R (x -ᵥ p₁) (y -ᵥ p₂) :=
@@ -872,10 +812,7 @@ theorem wSameSide_iff_exists_right {s : AffineSubspace R P} {x y p₂ : P} (h :
#align affine_subspace.w_same_side_iff_exists_right AffineSubspace.wSameSide_iff_exists_right
/- warning: affine_subspace.s_same_side_iff_exists_left -> AffineSubspace.sSameSide_iff_exists_left is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {p₁ : P}, (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₁ s) -> (Iff (AffineSubspace.SSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) (And (Not (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s)) (And (Not (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s)) (Exists.{succ u3} P (fun (p₂ : P) => Exists.{0} (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₂ s) (fun (H : Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₂ s) => SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3 (VSub.vsub.{u2, u3} V P (AddTorsor.toHasVsub.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p₁) (VSub.vsub.{u2, u3} V P (AddTorsor.toHasVsub.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) y p₂)))))))
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {p₁ : P}, (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₁ s) -> (Iff (AffineSubspace.SSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) (And (Not (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s)) (And (Not (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s)) (Exists.{succ u1} P (fun (p₂ : P) => And (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₂ s) (SameRay.{u3, u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1))) V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3 (VSub.vsub.{u2, u1} V P (AddTorsor.toVSub.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p₁) (VSub.vsub.{u2, u1} V P (AddTorsor.toVSub.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) y p₂)))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align affine_subspace.s_same_side_iff_exists_left AffineSubspace.sSameSide_iff_exists_leftₓ'. -/
theorem sSameSide_iff_exists_left {s : AffineSubspace R P} {x y p₁ : P} (h : p₁ ∈ s) :
s.SSameSide x y ↔ x ∉ s ∧ y ∉ s ∧ ∃ p₂ ∈ s, SameRay R (x -ᵥ p₁) (y -ᵥ p₂) :=
@@ -886,10 +823,7 @@ theorem sSameSide_iff_exists_left {s : AffineSubspace R P} {x y p₁ : P} (h : p
#align affine_subspace.s_same_side_iff_exists_left AffineSubspace.sSameSide_iff_exists_left
/- warning: affine_subspace.s_same_side_iff_exists_right -> AffineSubspace.sSameSide_iff_exists_right is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {p₂ : P}, (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₂ s) -> (Iff (AffineSubspace.SSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) (And (Not (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s)) (And (Not (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s)) (Exists.{succ u3} P (fun (p₁ : P) => Exists.{0} (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₁ s) (fun (H : Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₁ s) => SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3 (VSub.vsub.{u2, u3} V P (AddTorsor.toHasVsub.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p₁) (VSub.vsub.{u2, u3} V P (AddTorsor.toHasVsub.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) y p₂)))))))
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {p₂ : P}, (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₂ s) -> (Iff (AffineSubspace.SSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) (And (Not (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s)) (And (Not (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s)) (Exists.{succ u1} P (fun (p₁ : P) => And (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₁ s) (SameRay.{u3, u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1))) V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3 (VSub.vsub.{u2, u1} V P (AddTorsor.toVSub.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p₁) (VSub.vsub.{u2, u1} V P (AddTorsor.toVSub.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) y p₂)))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align affine_subspace.s_same_side_iff_exists_right AffineSubspace.sSameSide_iff_exists_rightₓ'. -/
theorem sSameSide_iff_exists_right {s : AffineSubspace R P} {x y p₂ : P} (h : p₂ ∈ s) :
s.SSameSide x y ↔ x ∉ s ∧ y ∉ s ∧ ∃ p₁ ∈ s, SameRay R (x -ᵥ p₁) (y -ᵥ p₂) :=
@@ -899,10 +833,7 @@ theorem sSameSide_iff_exists_right {s : AffineSubspace R P} {x y p₂ : P} (h :
#align affine_subspace.s_same_side_iff_exists_right AffineSubspace.sSameSide_iff_exists_right
/- warning: affine_subspace.w_opp_side_iff_exists_left -> AffineSubspace.wOppSide_iff_exists_left is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {p₁ : P}, (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₁ s) -> (Iff (AffineSubspace.WOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) (Or (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s) (Exists.{succ u3} P (fun (p₂ : P) => Exists.{0} (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₂ s) (fun (H : Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₂ s) => SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3 (VSub.vsub.{u2, u3} V P (AddTorsor.toHasVsub.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p₁) (VSub.vsub.{u2, u3} V P (AddTorsor.toHasVsub.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) p₂ y))))))
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {p₁ : P}, (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₁ s) -> (Iff (AffineSubspace.WOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) (Or (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s) (Exists.{succ u1} P (fun (p₂ : P) => And (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₂ s) (SameRay.{u3, u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1))) V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3 (VSub.vsub.{u2, u1} V P (AddTorsor.toVSub.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p₁) (VSub.vsub.{u2, u1} V P (AddTorsor.toVSub.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) p₂ y))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align affine_subspace.w_opp_side_iff_exists_left AffineSubspace.wOppSide_iff_exists_leftₓ'. -/
theorem wOppSide_iff_exists_left {s : AffineSubspace R P} {x y p₁ : P} (h : p₁ ∈ s) :
s.WOppSide x y ↔ x ∈ s ∨ ∃ p₂ ∈ s, SameRay R (x -ᵥ p₁) (p₂ -ᵥ y) :=
@@ -928,10 +859,7 @@ theorem wOppSide_iff_exists_left {s : AffineSubspace R P} {x y p₁ : P} (h : p
#align affine_subspace.w_opp_side_iff_exists_left AffineSubspace.wOppSide_iff_exists_left
/- warning: affine_subspace.w_opp_side_iff_exists_right -> AffineSubspace.wOppSide_iff_exists_right is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {p₂ : P}, (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₂ s) -> (Iff (AffineSubspace.WOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) (Or (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s) (Exists.{succ u3} P (fun (p₁ : P) => Exists.{0} (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₁ s) (fun (H : Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₁ s) => SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3 (VSub.vsub.{u2, u3} V P (AddTorsor.toHasVsub.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p₁) (VSub.vsub.{u2, u3} V P (AddTorsor.toHasVsub.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) p₂ y))))))
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {p₂ : P}, (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₂ s) -> (Iff (AffineSubspace.WOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) (Or (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s) (Exists.{succ u1} P (fun (p₁ : P) => And (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₁ s) (SameRay.{u3, u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1))) V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3 (VSub.vsub.{u2, u1} V P (AddTorsor.toVSub.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p₁) (VSub.vsub.{u2, u1} V P (AddTorsor.toVSub.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) p₂ y))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align affine_subspace.w_opp_side_iff_exists_right AffineSubspace.wOppSide_iff_exists_rightₓ'. -/
theorem wOppSide_iff_exists_right {s : AffineSubspace R P} {x y p₂ : P} (h : p₂ ∈ s) :
s.WOppSide x y ↔ y ∈ s ∨ ∃ p₁ ∈ s, SameRay R (x -ᵥ p₁) (p₂ -ᵥ y) :=
@@ -949,10 +877,7 @@ theorem wOppSide_iff_exists_right {s : AffineSubspace R P} {x y p₂ : P} (h : p
#align affine_subspace.w_opp_side_iff_exists_right AffineSubspace.wOppSide_iff_exists_right
/- warning: affine_subspace.s_opp_side_iff_exists_left -> AffineSubspace.sOppSide_iff_exists_left is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {p₁ : P}, (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₁ s) -> (Iff (AffineSubspace.SOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) (And (Not (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s)) (And (Not (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s)) (Exists.{succ u3} P (fun (p₂ : P) => Exists.{0} (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₂ s) (fun (H : Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₂ s) => SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3 (VSub.vsub.{u2, u3} V P (AddTorsor.toHasVsub.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p₁) (VSub.vsub.{u2, u3} V P (AddTorsor.toHasVsub.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) p₂ y)))))))
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {p₁ : P}, (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₁ s) -> (Iff (AffineSubspace.SOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) (And (Not (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s)) (And (Not (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s)) (Exists.{succ u1} P (fun (p₂ : P) => And (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₂ s) (SameRay.{u3, u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1))) V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3 (VSub.vsub.{u2, u1} V P (AddTorsor.toVSub.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p₁) (VSub.vsub.{u2, u1} V P (AddTorsor.toVSub.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) p₂ y)))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align affine_subspace.s_opp_side_iff_exists_left AffineSubspace.sOppSide_iff_exists_leftₓ'. -/
theorem sOppSide_iff_exists_left {s : AffineSubspace R P} {x y p₁ : P} (h : p₁ ∈ s) :
s.SOppSide x y ↔ x ∉ s ∧ y ∉ s ∧ ∃ p₂ ∈ s, SameRay R (x -ᵥ p₁) (p₂ -ᵥ y) :=
@@ -963,10 +888,7 @@ theorem sOppSide_iff_exists_left {s : AffineSubspace R P} {x y p₁ : P} (h : p
#align affine_subspace.s_opp_side_iff_exists_left AffineSubspace.sOppSide_iff_exists_left
/- warning: affine_subspace.s_opp_side_iff_exists_right -> AffineSubspace.sOppSide_iff_exists_right is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {p₂ : P}, (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₂ s) -> (Iff (AffineSubspace.SOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) (And (Not (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s)) (And (Not (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s)) (Exists.{succ u3} P (fun (p₁ : P) => Exists.{0} (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₁ s) (fun (H : Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₁ s) => SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3 (VSub.vsub.{u2, u3} V P (AddTorsor.toHasVsub.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p₁) (VSub.vsub.{u2, u3} V P (AddTorsor.toHasVsub.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) p₂ y)))))))
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {p₂ : P}, (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₂ s) -> (Iff (AffineSubspace.SOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) (And (Not (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s)) (And (Not (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s)) (Exists.{succ u1} P (fun (p₁ : P) => And (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₁ s) (SameRay.{u3, u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1))) V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3 (VSub.vsub.{u2, u1} V P (AddTorsor.toVSub.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p₁) (VSub.vsub.{u2, u1} V P (AddTorsor.toVSub.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) p₂ y)))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align affine_subspace.s_opp_side_iff_exists_right AffineSubspace.sOppSide_iff_exists_rightₓ'. -/
theorem sOppSide_iff_exists_right {s : AffineSubspace R P} {x y p₂ : P} (h : p₂ ∈ s) :
s.SOppSide x y ↔ x ∉ s ∧ y ∉ s ∧ ∃ p₁ ∈ s, SameRay R (x -ᵥ p₁) (p₂ -ᵥ y) :=
@@ -1336,10 +1258,7 @@ theorem Sbtw.sOppSide_of_not_mem_of_mem {s : AffineSubspace R P} {x y z : P} (h
#align sbtw.s_opp_side_of_not_mem_of_mem Sbtw.sOppSide_of_not_mem_of_mem
/- warning: affine_subspace.s_same_side_smul_vsub_vadd_left -> AffineSubspace.sSameSide_smul_vsub_vadd_left is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {p₁ : P} {p₂ : P}, (Not (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s)) -> (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₁ s) -> (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₂ s) -> (forall {t : R}, (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))))))))))) t) -> (AffineSubspace.SSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s (VAdd.vadd.{u2, u3} V P (AddAction.toHasVadd.{u2, u3} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4)) (SMul.smul.{u1, u2} R V (SMulZeroClass.toHasSmul.{u1, u2} R V (AddZeroClass.toHasZero.{u2} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R V (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} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R V (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} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3)))) t (VSub.vsub.{u2, u3} V P (AddTorsor.toHasVsub.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p₁)) p₂) x))
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {p₁ : P} {p₂ : P}, (Not (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s)) -> (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₁ s) -> (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₂ s) -> (forall {t : R}, (LT.lt.{u3} R (Preorder.toLT.{u3} R (PartialOrder.toPreorder.{u3} R (StrictOrderedRing.toPartialOrder.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)))))) (OfNat.ofNat.{u3} R 0 (Zero.toOfNat0.{u3} R (CommMonoidWithZero.toZero.{u3} R (CommGroupWithZero.toCommMonoidWithZero.{u3} R (Semifield.toCommGroupWithZero.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1))))))) t) -> (AffineSubspace.SSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s (HVAdd.hVAdd.{u2, u1, u1} V P P (instHVAdd.{u2, u1} V P (AddAction.toVAdd.{u2, u1} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4))) (HSMul.hSMul.{u3, u2, u2} R V V (instHSMul.{u3, u2} R V (SMulZeroClass.toSMul.{u3, u2} R V (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (SMulWithZero.toSMulZeroClass.{u3, u2} R V (CommMonoidWithZero.toZero.{u3} R (CommGroupWithZero.toCommMonoidWithZero.{u3} R (Semifield.toCommGroupWithZero.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1))))) (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (MulActionWithZero.toSMulWithZero.{u3, u2} R V (Semiring.toMonoidWithZero.{u3} R (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1))))) (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (Module.toMulActionWithZero.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3))))) t (VSub.vsub.{u2, u1} V P (AddTorsor.toVSub.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p₁)) p₂) x))
+<too large>
Case conversion may be inaccurate. Consider using '#align affine_subspace.s_same_side_smul_vsub_vadd_left AffineSubspace.sSameSide_smul_vsub_vadd_leftₓ'. -/
theorem sSameSide_smul_vsub_vadd_left {s : AffineSubspace R P} {x p₁ p₂ : P} (hx : x ∉ s)
(hp₁ : p₁ ∈ s) (hp₂ : p₂ ∈ s) {t : R} (ht : 0 < t) : s.SSameSide (t • (x -ᵥ p₁) +ᵥ p₂) x :=
@@ -1350,10 +1269,7 @@ theorem sSameSide_smul_vsub_vadd_left {s : AffineSubspace R P} {x p₁ p₂ : P}
#align affine_subspace.s_same_side_smul_vsub_vadd_left AffineSubspace.sSameSide_smul_vsub_vadd_left
/- warning: affine_subspace.s_same_side_smul_vsub_vadd_right -> AffineSubspace.sSameSide_smul_vsub_vadd_right is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {p₁ : P} {p₂ : P}, (Not (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s)) -> (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₁ s) -> (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₂ s) -> (forall {t : R}, (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))))))))))) t) -> (AffineSubspace.SSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x (VAdd.vadd.{u2, u3} V P (AddAction.toHasVadd.{u2, u3} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4)) (SMul.smul.{u1, u2} R V (SMulZeroClass.toHasSmul.{u1, u2} R V (AddZeroClass.toHasZero.{u2} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R V (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} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R V (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} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3)))) t (VSub.vsub.{u2, u3} V P (AddTorsor.toHasVsub.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p₁)) p₂)))
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {p₁ : P} {p₂ : P}, (Not (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s)) -> (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₁ s) -> (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₂ s) -> (forall {t : R}, (LT.lt.{u3} R (Preorder.toLT.{u3} R (PartialOrder.toPreorder.{u3} R (StrictOrderedRing.toPartialOrder.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)))))) (OfNat.ofNat.{u3} R 0 (Zero.toOfNat0.{u3} R (CommMonoidWithZero.toZero.{u3} R (CommGroupWithZero.toCommMonoidWithZero.{u3} R (Semifield.toCommGroupWithZero.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1))))))) t) -> (AffineSubspace.SSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x (HVAdd.hVAdd.{u2, u1, u1} V P P (instHVAdd.{u2, u1} V P (AddAction.toVAdd.{u2, u1} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4))) (HSMul.hSMul.{u3, u2, u2} R V V (instHSMul.{u3, u2} R V (SMulZeroClass.toSMul.{u3, u2} R V (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (SMulWithZero.toSMulZeroClass.{u3, u2} R V (CommMonoidWithZero.toZero.{u3} R (CommGroupWithZero.toCommMonoidWithZero.{u3} R (Semifield.toCommGroupWithZero.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1))))) (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (MulActionWithZero.toSMulWithZero.{u3, u2} R V (Semiring.toMonoidWithZero.{u3} R (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1))))) (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (Module.toMulActionWithZero.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3))))) t (VSub.vsub.{u2, u1} V P (AddTorsor.toVSub.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p₁)) p₂)))
+<too large>
Case conversion may be inaccurate. Consider using '#align affine_subspace.s_same_side_smul_vsub_vadd_right AffineSubspace.sSameSide_smul_vsub_vadd_rightₓ'. -/
theorem sSameSide_smul_vsub_vadd_right {s : AffineSubspace R P} {x p₁ p₂ : P} (hx : x ∉ s)
(hp₁ : p₁ ∈ s) (hp₂ : p₂ ∈ s) {t : R} (ht : 0 < t) : s.SSameSide x (t • (x -ᵥ p₁) +ᵥ p₂) :=
@@ -1361,10 +1277,7 @@ theorem sSameSide_smul_vsub_vadd_right {s : AffineSubspace R P} {x p₁ p₂ : P
#align affine_subspace.s_same_side_smul_vsub_vadd_right AffineSubspace.sSameSide_smul_vsub_vadd_right
/- warning: affine_subspace.s_same_side_line_map_left -> AffineSubspace.sSameSide_lineMap_left is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s) -> (Not (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s)) -> (forall {t : R}, (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))))))))))) t) -> (AffineSubspace.SSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s (coeFn.{max (succ u1) (succ u2) (succ u3), max (succ u1) (succ u3)} (AffineMap.{u1, u1, u1, u2, u3} R R R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (addGroupIsAddTorsor.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))) _inst_2 _inst_3 _inst_4) (fun (_x : AffineMap.{u1, u1, u1, u2, u3} R R R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (addGroupIsAddTorsor.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))) _inst_2 _inst_3 _inst_4) => R -> P) (AffineMap.hasCoeToFun.{u1, u1, u1, u2, u3} R R R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (addGroupIsAddTorsor.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))) _inst_2 _inst_3 _inst_4) (AffineMap.lineMap.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4 x y) t) y))
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s) -> (Not (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s)) -> (forall {t : R}, (LT.lt.{u3} R (Preorder.toLT.{u3} R (PartialOrder.toPreorder.{u3} R (StrictOrderedRing.toPartialOrder.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)))))) (OfNat.ofNat.{u3} R 0 (Zero.toOfNat0.{u3} R (CommMonoidWithZero.toZero.{u3} R (CommGroupWithZero.toCommMonoidWithZero.{u3} R (Semifield.toCommGroupWithZero.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1))))))) t) -> (AffineSubspace.SSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), succ u3, succ u1} (AffineMap.{u3, u3, u3, u2, u1} R R R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) (Ring.toAddCommGroup.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1)))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))))) (addGroupIsAddTorsor.{u3} R (AddGroupWithOne.toAddGroup.{u3} R (Ring.toAddGroupWithOne.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1)))))) _inst_2 _inst_3 _inst_4) R (fun (_x : R) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : R) => P) _x) (AffineMap.funLike.{u3, u3, u3, u2, u1} R R R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) (Ring.toAddCommGroup.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1)))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))))) (addGroupIsAddTorsor.{u3} R (AddGroupWithOne.toAddGroup.{u3} R (Ring.toAddGroupWithOne.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1)))))) _inst_2 _inst_3 _inst_4) (AffineMap.lineMap.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4 x y) t) y))
+<too large>
Case conversion may be inaccurate. Consider using '#align affine_subspace.s_same_side_line_map_left AffineSubspace.sSameSide_lineMap_leftₓ'. -/
theorem sSameSide_lineMap_left {s : AffineSubspace R P} {x y : P} (hx : x ∈ s) (hy : y ∉ s) {t : R}
(ht : 0 < t) : s.SSameSide (lineMap x y t) y :=
@@ -1372,10 +1285,7 @@ theorem sSameSide_lineMap_left {s : AffineSubspace R P} {x y : P} (hx : x ∈ s)
#align affine_subspace.s_same_side_line_map_left AffineSubspace.sSameSide_lineMap_left
/- warning: affine_subspace.s_same_side_line_map_right -> AffineSubspace.sSameSide_lineMap_right is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s) -> (Not (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s)) -> (forall {t : R}, (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))))))))))) t) -> (AffineSubspace.SSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s y (coeFn.{max (succ u1) (succ u2) (succ u3), max (succ u1) (succ u3)} (AffineMap.{u1, u1, u1, u2, u3} R R R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (addGroupIsAddTorsor.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))) _inst_2 _inst_3 _inst_4) (fun (_x : AffineMap.{u1, u1, u1, u2, u3} R R R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (addGroupIsAddTorsor.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))) _inst_2 _inst_3 _inst_4) => R -> P) (AffineMap.hasCoeToFun.{u1, u1, u1, u2, u3} R R R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (addGroupIsAddTorsor.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))) _inst_2 _inst_3 _inst_4) (AffineMap.lineMap.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4 x y) t)))
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s) -> (Not (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s)) -> (forall {t : R}, (LT.lt.{u3} R (Preorder.toLT.{u3} R (PartialOrder.toPreorder.{u3} R (StrictOrderedRing.toPartialOrder.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)))))) (OfNat.ofNat.{u3} R 0 (Zero.toOfNat0.{u3} R (CommMonoidWithZero.toZero.{u3} R (CommGroupWithZero.toCommMonoidWithZero.{u3} R (Semifield.toCommGroupWithZero.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1))))))) t) -> (AffineSubspace.SSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s y (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), succ u3, succ u1} (AffineMap.{u3, u3, u3, u2, u1} R R R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) (Ring.toAddCommGroup.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1)))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))))) (addGroupIsAddTorsor.{u3} R (AddGroupWithOne.toAddGroup.{u3} R (Ring.toAddGroupWithOne.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1)))))) _inst_2 _inst_3 _inst_4) R (fun (_x : R) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : R) => P) _x) (AffineMap.funLike.{u3, u3, u3, u2, u1} R R R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) (Ring.toAddCommGroup.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1)))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))))) (addGroupIsAddTorsor.{u3} R (AddGroupWithOne.toAddGroup.{u3} R (Ring.toAddGroupWithOne.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1)))))) _inst_2 _inst_3 _inst_4) (AffineMap.lineMap.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4 x y) t)))
+<too large>
Case conversion may be inaccurate. Consider using '#align affine_subspace.s_same_side_line_map_right AffineSubspace.sSameSide_lineMap_rightₓ'. -/
theorem sSameSide_lineMap_right {s : AffineSubspace R P} {x y : P} (hx : x ∈ s) (hy : y ∉ s) {t : R}
(ht : 0 < t) : s.SSameSide y (lineMap x y t) :=
@@ -1383,10 +1293,7 @@ theorem sSameSide_lineMap_right {s : AffineSubspace R P} {x y : P} (hx : x ∈ s
#align affine_subspace.s_same_side_line_map_right AffineSubspace.sSameSide_lineMap_right
/- warning: affine_subspace.s_opp_side_smul_vsub_vadd_left -> AffineSubspace.sOppSide_smul_vsub_vadd_left is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {p₁ : P} {p₂ : P}, (Not (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s)) -> (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₁ s) -> (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₂ s) -> (forall {t : R}, (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))))))) t (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)))))))))))) -> (AffineSubspace.SOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s (VAdd.vadd.{u2, u3} V P (AddAction.toHasVadd.{u2, u3} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4)) (SMul.smul.{u1, u2} R V (SMulZeroClass.toHasSmul.{u1, u2} R V (AddZeroClass.toHasZero.{u2} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R V (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} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R V (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} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3)))) t (VSub.vsub.{u2, u3} V P (AddTorsor.toHasVsub.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p₁)) p₂) x))
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {p₁ : P} {p₂ : P}, (Not (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s)) -> (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₁ s) -> (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₂ s) -> (forall {t : R}, (LT.lt.{u3} R (Preorder.toLT.{u3} R (PartialOrder.toPreorder.{u3} R (StrictOrderedRing.toPartialOrder.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)))))) t (OfNat.ofNat.{u3} R 0 (Zero.toOfNat0.{u3} R (CommMonoidWithZero.toZero.{u3} R (CommGroupWithZero.toCommMonoidWithZero.{u3} R (Semifield.toCommGroupWithZero.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))))))) -> (AffineSubspace.SOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s (HVAdd.hVAdd.{u2, u1, u1} V P P (instHVAdd.{u2, u1} V P (AddAction.toVAdd.{u2, u1} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4))) (HSMul.hSMul.{u3, u2, u2} R V V (instHSMul.{u3, u2} R V (SMulZeroClass.toSMul.{u3, u2} R V (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (SMulWithZero.toSMulZeroClass.{u3, u2} R V (CommMonoidWithZero.toZero.{u3} R (CommGroupWithZero.toCommMonoidWithZero.{u3} R (Semifield.toCommGroupWithZero.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1))))) (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (MulActionWithZero.toSMulWithZero.{u3, u2} R V (Semiring.toMonoidWithZero.{u3} R (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1))))) (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (Module.toMulActionWithZero.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3))))) t (VSub.vsub.{u2, u1} V P (AddTorsor.toVSub.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p₁)) p₂) x))
+<too large>
Case conversion may be inaccurate. Consider using '#align affine_subspace.s_opp_side_smul_vsub_vadd_left AffineSubspace.sOppSide_smul_vsub_vadd_leftₓ'. -/
theorem sOppSide_smul_vsub_vadd_left {s : AffineSubspace R P} {x p₁ p₂ : P} (hx : x ∉ s)
(hp₁ : p₁ ∈ s) (hp₂ : p₂ ∈ s) {t : R} (ht : t < 0) : s.SOppSide (t • (x -ᵥ p₁) +ᵥ p₂) x :=
@@ -1397,10 +1304,7 @@ theorem sOppSide_smul_vsub_vadd_left {s : AffineSubspace R P} {x p₁ p₂ : P}
#align affine_subspace.s_opp_side_smul_vsub_vadd_left AffineSubspace.sOppSide_smul_vsub_vadd_left
/- warning: affine_subspace.s_opp_side_smul_vsub_vadd_right -> AffineSubspace.sOppSide_smul_vsub_vadd_right is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {p₁ : P} {p₂ : P}, (Not (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s)) -> (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₁ s) -> (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₂ s) -> (forall {t : R}, (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))))))) t (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)))))))))))) -> (AffineSubspace.SOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x (VAdd.vadd.{u2, u3} V P (AddAction.toHasVadd.{u2, u3} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4)) (SMul.smul.{u1, u2} R V (SMulZeroClass.toHasSmul.{u1, u2} R V (AddZeroClass.toHasZero.{u2} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R V (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} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R V (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} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3)))) t (VSub.vsub.{u2, u3} V P (AddTorsor.toHasVsub.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p₁)) p₂)))
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {p₁ : P} {p₂ : P}, (Not (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s)) -> (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₁ s) -> (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₂ s) -> (forall {t : R}, (LT.lt.{u3} R (Preorder.toLT.{u3} R (PartialOrder.toPreorder.{u3} R (StrictOrderedRing.toPartialOrder.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)))))) t (OfNat.ofNat.{u3} R 0 (Zero.toOfNat0.{u3} R (CommMonoidWithZero.toZero.{u3} R (CommGroupWithZero.toCommMonoidWithZero.{u3} R (Semifield.toCommGroupWithZero.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))))))) -> (AffineSubspace.SOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x (HVAdd.hVAdd.{u2, u1, u1} V P P (instHVAdd.{u2, u1} V P (AddAction.toVAdd.{u2, u1} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4))) (HSMul.hSMul.{u3, u2, u2} R V V (instHSMul.{u3, u2} R V (SMulZeroClass.toSMul.{u3, u2} R V (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (SMulWithZero.toSMulZeroClass.{u3, u2} R V (CommMonoidWithZero.toZero.{u3} R (CommGroupWithZero.toCommMonoidWithZero.{u3} R (Semifield.toCommGroupWithZero.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1))))) (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (MulActionWithZero.toSMulWithZero.{u3, u2} R V (Semiring.toMonoidWithZero.{u3} R (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1))))) (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (Module.toMulActionWithZero.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3))))) t (VSub.vsub.{u2, u1} V P (AddTorsor.toVSub.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p₁)) p₂)))
+<too large>
Case conversion may be inaccurate. Consider using '#align affine_subspace.s_opp_side_smul_vsub_vadd_right AffineSubspace.sOppSide_smul_vsub_vadd_rightₓ'. -/
theorem sOppSide_smul_vsub_vadd_right {s : AffineSubspace R P} {x p₁ p₂ : P} (hx : x ∉ s)
(hp₁ : p₁ ∈ s) (hp₂ : p₂ ∈ s) {t : R} (ht : t < 0) : s.SOppSide x (t • (x -ᵥ p₁) +ᵥ p₂) :=
@@ -1408,10 +1312,7 @@ theorem sOppSide_smul_vsub_vadd_right {s : AffineSubspace R P} {x p₁ p₂ : P}
#align affine_subspace.s_opp_side_smul_vsub_vadd_right AffineSubspace.sOppSide_smul_vsub_vadd_right
/- warning: affine_subspace.s_opp_side_line_map_left -> AffineSubspace.sOppSide_lineMap_left is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s) -> (Not (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s)) -> (forall {t : R}, (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))))))) t (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)))))))))))) -> (AffineSubspace.SOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s (coeFn.{max (succ u1) (succ u2) (succ u3), max (succ u1) (succ u3)} (AffineMap.{u1, u1, u1, u2, u3} R R R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (addGroupIsAddTorsor.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))) _inst_2 _inst_3 _inst_4) (fun (_x : AffineMap.{u1, u1, u1, u2, u3} R R R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (addGroupIsAddTorsor.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))) _inst_2 _inst_3 _inst_4) => R -> P) (AffineMap.hasCoeToFun.{u1, u1, u1, u2, u3} R R R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (addGroupIsAddTorsor.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))) _inst_2 _inst_3 _inst_4) (AffineMap.lineMap.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4 x y) t) y))
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s) -> (Not (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s)) -> (forall {t : R}, (LT.lt.{u3} R (Preorder.toLT.{u3} R (PartialOrder.toPreorder.{u3} R (StrictOrderedRing.toPartialOrder.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)))))) t (OfNat.ofNat.{u3} R 0 (Zero.toOfNat0.{u3} R (CommMonoidWithZero.toZero.{u3} R (CommGroupWithZero.toCommMonoidWithZero.{u3} R (Semifield.toCommGroupWithZero.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))))))) -> (AffineSubspace.SOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), succ u3, succ u1} (AffineMap.{u3, u3, u3, u2, u1} R R R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) (Ring.toAddCommGroup.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1)))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))))) (addGroupIsAddTorsor.{u3} R (AddGroupWithOne.toAddGroup.{u3} R (Ring.toAddGroupWithOne.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1)))))) _inst_2 _inst_3 _inst_4) R (fun (_x : R) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : R) => P) _x) (AffineMap.funLike.{u3, u3, u3, u2, u1} R R R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) (Ring.toAddCommGroup.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1)))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))))) (addGroupIsAddTorsor.{u3} R (AddGroupWithOne.toAddGroup.{u3} R (Ring.toAddGroupWithOne.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1)))))) _inst_2 _inst_3 _inst_4) (AffineMap.lineMap.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4 x y) t) y))
+<too large>
Case conversion may be inaccurate. Consider using '#align affine_subspace.s_opp_side_line_map_left AffineSubspace.sOppSide_lineMap_leftₓ'. -/
theorem sOppSide_lineMap_left {s : AffineSubspace R P} {x y : P} (hx : x ∈ s) (hy : y ∉ s) {t : R}
(ht : t < 0) : s.SOppSide (lineMap x y t) y :=
@@ -1419,10 +1320,7 @@ theorem sOppSide_lineMap_left {s : AffineSubspace R P} {x y : P} (hx : x ∈ s)
#align affine_subspace.s_opp_side_line_map_left AffineSubspace.sOppSide_lineMap_left
/- warning: affine_subspace.s_opp_side_line_map_right -> AffineSubspace.sOppSide_lineMap_right is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s) -> (Not (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s)) -> (forall {t : R}, (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))))))) t (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)))))))))))) -> (AffineSubspace.SOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s y (coeFn.{max (succ u1) (succ u2) (succ u3), max (succ u1) (succ u3)} (AffineMap.{u1, u1, u1, u2, u3} R R R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (addGroupIsAddTorsor.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))) _inst_2 _inst_3 _inst_4) (fun (_x : AffineMap.{u1, u1, u1, u2, u3} R R R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (addGroupIsAddTorsor.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))) _inst_2 _inst_3 _inst_4) => R -> P) (AffineMap.hasCoeToFun.{u1, u1, u1, u2, u3} R R R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (addGroupIsAddTorsor.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))) _inst_2 _inst_3 _inst_4) (AffineMap.lineMap.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4 x y) t)))
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s) -> (Not (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s)) -> (forall {t : R}, (LT.lt.{u3} R (Preorder.toLT.{u3} R (PartialOrder.toPreorder.{u3} R (StrictOrderedRing.toPartialOrder.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)))))) t (OfNat.ofNat.{u3} R 0 (Zero.toOfNat0.{u3} R (CommMonoidWithZero.toZero.{u3} R (CommGroupWithZero.toCommMonoidWithZero.{u3} R (Semifield.toCommGroupWithZero.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))))))) -> (AffineSubspace.SOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s y (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), succ u3, succ u1} (AffineMap.{u3, u3, u3, u2, u1} R R R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) (Ring.toAddCommGroup.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1)))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))))) (addGroupIsAddTorsor.{u3} R (AddGroupWithOne.toAddGroup.{u3} R (Ring.toAddGroupWithOne.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1)))))) _inst_2 _inst_3 _inst_4) R (fun (_x : R) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : R) => P) _x) (AffineMap.funLike.{u3, u3, u3, u2, u1} R R R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) (Ring.toAddCommGroup.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1)))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))))) (addGroupIsAddTorsor.{u3} R (AddGroupWithOne.toAddGroup.{u3} R (Ring.toAddGroupWithOne.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1)))))) _inst_2 _inst_3 _inst_4) (AffineMap.lineMap.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4 x y) t)))
+<too large>
Case conversion may be inaccurate. Consider using '#align affine_subspace.s_opp_side_line_map_right AffineSubspace.sOppSide_lineMap_rightₓ'. -/
theorem sOppSide_lineMap_right {s : AffineSubspace R P} {x y : P} (hx : x ∈ s) (hy : y ∉ s) {t : R}
(ht : t < 0) : s.SOppSide y (lineMap x y t) :=
@@ -1430,10 +1328,7 @@ theorem sOppSide_lineMap_right {s : AffineSubspace R P} {x y : P} (hx : x ∈ s)
#align affine_subspace.s_opp_side_line_map_right AffineSubspace.sOppSide_lineMap_right
/- warning: affine_subspace.set_of_w_same_side_eq_image2 -> AffineSubspace.setOf_wSameSide_eq_image2 is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {p : P}, (Not (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s)) -> (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p s) -> (Eq.{succ u3} (Set.{u3} P) (setOf.{u3} P (fun (y : P) => AffineSubspace.WSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y)) (Set.image2.{u1, u3, u3} R P P (fun (t : R) (q : P) => VAdd.vadd.{u2, u3} V P (AddAction.toHasVadd.{u2, u3} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4)) (SMul.smul.{u1, u2} R V (SMulZeroClass.toHasSmul.{u1, u2} R V (AddZeroClass.toHasZero.{u2} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R V (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} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R V (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} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3)))) t (VSub.vsub.{u2, u3} V P (AddTorsor.toHasVsub.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p)) q) (Set.Ici.{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)))))))))))) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (Set.{u3} P) (HasLiftT.mk.{succ u3, succ u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (Set.{u3} P) (CoeTCₓ.coe.{succ u3, succ u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (Set.{u3} P) (SetLike.Set.hasCoeT.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)))) s)))
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {p : P}, (Not (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s)) -> (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) p s) -> (Eq.{succ u1} (Set.{u1} P) (setOf.{u1} P (fun (y : P) => AffineSubspace.WSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y)) (Set.image2.{u3, u1, u1} R P P (fun (t : R) (q : P) => HVAdd.hVAdd.{u2, u1, u1} V P P (instHVAdd.{u2, u1} V P (AddAction.toVAdd.{u2, u1} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4))) (HSMul.hSMul.{u3, u2, u2} R V V (instHSMul.{u3, u2} R V (SMulZeroClass.toSMul.{u3, u2} R V (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (SMulWithZero.toSMulZeroClass.{u3, u2} R V (CommMonoidWithZero.toZero.{u3} R (CommGroupWithZero.toCommMonoidWithZero.{u3} R (Semifield.toCommGroupWithZero.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1))))) (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (MulActionWithZero.toSMulWithZero.{u3, u2} R V (Semiring.toMonoidWithZero.{u3} R (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1))))) (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (Module.toMulActionWithZero.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3))))) t (VSub.vsub.{u2, u1} V P (AddTorsor.toVSub.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p)) q) (Set.Ici.{u3} R (PartialOrder.toPreorder.{u3} R (StrictOrderedRing.toPartialOrder.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1))))) (OfNat.ofNat.{u3} R 0 (Zero.toOfNat0.{u3} R (CommMonoidWithZero.toZero.{u3} R (CommGroupWithZero.toCommMonoidWithZero.{u3} R (Semifield.toCommGroupWithZero.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))))))) (SetLike.coe.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) s)))
+<too large>
Case conversion may be inaccurate. Consider using '#align affine_subspace.set_of_w_same_side_eq_image2 AffineSubspace.setOf_wSameSide_eq_image2ₓ'. -/
theorem setOf_wSameSide_eq_image2 {s : AffineSubspace R P} {x p : P} (hx : x ∉ s) (hp : p ∈ s) :
{ y | s.WSameSide x y } = Set.image2 (fun (t : R) q => t • (x -ᵥ p) +ᵥ q) (Set.Ici 0) s :=
@@ -1456,10 +1351,7 @@ theorem setOf_wSameSide_eq_image2 {s : AffineSubspace R P} {x p : P} (hx : x ∉
#align affine_subspace.set_of_w_same_side_eq_image2 AffineSubspace.setOf_wSameSide_eq_image2
/- warning: affine_subspace.set_of_s_same_side_eq_image2 -> AffineSubspace.setOf_sSameSide_eq_image2 is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {p : P}, (Not (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s)) -> (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p s) -> (Eq.{succ u3} (Set.{u3} P) (setOf.{u3} P (fun (y : P) => AffineSubspace.SSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y)) (Set.image2.{u1, u3, u3} R P P (fun (t : R) (q : P) => VAdd.vadd.{u2, u3} V P (AddAction.toHasVadd.{u2, u3} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4)) (SMul.smul.{u1, u2} R V (SMulZeroClass.toHasSmul.{u1, u2} R V (AddZeroClass.toHasZero.{u2} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R V (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} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R V (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} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3)))) t (VSub.vsub.{u2, u3} V P (AddTorsor.toHasVsub.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p)) q) (Set.Ioi.{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)))))))))))) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (Set.{u3} P) (HasLiftT.mk.{succ u3, succ u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (Set.{u3} P) (CoeTCₓ.coe.{succ u3, succ u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (Set.{u3} P) (SetLike.Set.hasCoeT.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)))) s)))
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {p : P}, (Not (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s)) -> (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) p s) -> (Eq.{succ u1} (Set.{u1} P) (setOf.{u1} P (fun (y : P) => AffineSubspace.SSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y)) (Set.image2.{u3, u1, u1} R P P (fun (t : R) (q : P) => HVAdd.hVAdd.{u2, u1, u1} V P P (instHVAdd.{u2, u1} V P (AddAction.toVAdd.{u2, u1} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4))) (HSMul.hSMul.{u3, u2, u2} R V V (instHSMul.{u3, u2} R V (SMulZeroClass.toSMul.{u3, u2} R V (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (SMulWithZero.toSMulZeroClass.{u3, u2} R V (CommMonoidWithZero.toZero.{u3} R (CommGroupWithZero.toCommMonoidWithZero.{u3} R (Semifield.toCommGroupWithZero.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1))))) (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (MulActionWithZero.toSMulWithZero.{u3, u2} R V (Semiring.toMonoidWithZero.{u3} R (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1))))) (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (Module.toMulActionWithZero.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3))))) t (VSub.vsub.{u2, u1} V P (AddTorsor.toVSub.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p)) q) (Set.Ioi.{u3} R (PartialOrder.toPreorder.{u3} R (StrictOrderedRing.toPartialOrder.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1))))) (OfNat.ofNat.{u3} R 0 (Zero.toOfNat0.{u3} R (CommMonoidWithZero.toZero.{u3} R (CommGroupWithZero.toCommMonoidWithZero.{u3} R (Semifield.toCommGroupWithZero.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))))))) (SetLike.coe.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) s)))
+<too large>
Case conversion may be inaccurate. Consider using '#align affine_subspace.set_of_s_same_side_eq_image2 AffineSubspace.setOf_sSameSide_eq_image2ₓ'. -/
theorem setOf_sSameSide_eq_image2 {s : AffineSubspace R P} {x p : P} (hx : x ∉ s) (hp : p ∈ s) :
{ y | s.SSameSide x y } = Set.image2 (fun (t : R) q => t • (x -ᵥ p) +ᵥ q) (Set.Ioi 0) s :=
@@ -1481,10 +1373,7 @@ theorem setOf_sSameSide_eq_image2 {s : AffineSubspace R P} {x p : P} (hx : x ∉
#align affine_subspace.set_of_s_same_side_eq_image2 AffineSubspace.setOf_sSameSide_eq_image2
/- warning: affine_subspace.set_of_w_opp_side_eq_image2 -> AffineSubspace.setOf_wOppSide_eq_image2 is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {p : P}, (Not (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s)) -> (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p s) -> (Eq.{succ u3} (Set.{u3} P) (setOf.{u3} P (fun (y : P) => AffineSubspace.WOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y)) (Set.image2.{u1, u3, u3} R P P (fun (t : R) (q : P) => VAdd.vadd.{u2, u3} V P (AddAction.toHasVadd.{u2, u3} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4)) (SMul.smul.{u1, u2} R V (SMulZeroClass.toHasSmul.{u1, u2} R V (AddZeroClass.toHasZero.{u2} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R V (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} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R V (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} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3)))) t (VSub.vsub.{u2, u3} V P (AddTorsor.toHasVsub.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p)) q) (Set.Iic.{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)))))))))))) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (Set.{u3} P) (HasLiftT.mk.{succ u3, succ u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (Set.{u3} P) (CoeTCₓ.coe.{succ u3, succ u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (Set.{u3} P) (SetLike.Set.hasCoeT.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)))) s)))
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {p : P}, (Not (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s)) -> (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) p s) -> (Eq.{succ u1} (Set.{u1} P) (setOf.{u1} P (fun (y : P) => AffineSubspace.WOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y)) (Set.image2.{u3, u1, u1} R P P (fun (t : R) (q : P) => HVAdd.hVAdd.{u2, u1, u1} V P P (instHVAdd.{u2, u1} V P (AddAction.toVAdd.{u2, u1} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4))) (HSMul.hSMul.{u3, u2, u2} R V V (instHSMul.{u3, u2} R V (SMulZeroClass.toSMul.{u3, u2} R V (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (SMulWithZero.toSMulZeroClass.{u3, u2} R V (CommMonoidWithZero.toZero.{u3} R (CommGroupWithZero.toCommMonoidWithZero.{u3} R (Semifield.toCommGroupWithZero.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1))))) (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (MulActionWithZero.toSMulWithZero.{u3, u2} R V (Semiring.toMonoidWithZero.{u3} R (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1))))) (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (Module.toMulActionWithZero.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3))))) t (VSub.vsub.{u2, u1} V P (AddTorsor.toVSub.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p)) q) (Set.Iic.{u3} R (PartialOrder.toPreorder.{u3} R (StrictOrderedRing.toPartialOrder.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1))))) (OfNat.ofNat.{u3} R 0 (Zero.toOfNat0.{u3} R (CommMonoidWithZero.toZero.{u3} R (CommGroupWithZero.toCommMonoidWithZero.{u3} R (Semifield.toCommGroupWithZero.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))))))) (SetLike.coe.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) s)))
+<too large>
Case conversion may be inaccurate. Consider using '#align affine_subspace.set_of_w_opp_side_eq_image2 AffineSubspace.setOf_wOppSide_eq_image2ₓ'. -/
theorem setOf_wOppSide_eq_image2 {s : AffineSubspace R P} {x p : P} (hx : x ∉ s) (hp : p ∈ s) :
{ y | s.WOppSide x y } = Set.image2 (fun (t : R) q => t • (x -ᵥ p) +ᵥ q) (Set.Iic 0) s :=
@@ -1507,10 +1396,7 @@ theorem setOf_wOppSide_eq_image2 {s : AffineSubspace R P} {x p : P} (hx : x ∉
#align affine_subspace.set_of_w_opp_side_eq_image2 AffineSubspace.setOf_wOppSide_eq_image2
/- warning: affine_subspace.set_of_s_opp_side_eq_image2 -> AffineSubspace.setOf_sOppSide_eq_image2 is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {p : P}, (Not (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s)) -> (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p s) -> (Eq.{succ u3} (Set.{u3} P) (setOf.{u3} P (fun (y : P) => AffineSubspace.SOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y)) (Set.image2.{u1, u3, u3} R P P (fun (t : R) (q : P) => VAdd.vadd.{u2, u3} V P (AddAction.toHasVadd.{u2, u3} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4)) (SMul.smul.{u1, u2} R V (SMulZeroClass.toHasSmul.{u1, u2} R V (AddZeroClass.toHasZero.{u2} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R V (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} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R V (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} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3)))) t (VSub.vsub.{u2, u3} V P (AddTorsor.toHasVsub.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p)) q) (Set.Iio.{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)))))))))))) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (Set.{u3} P) (HasLiftT.mk.{succ u3, succ u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (Set.{u3} P) (CoeTCₓ.coe.{succ u3, succ u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (Set.{u3} P) (SetLike.Set.hasCoeT.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)))) s)))
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {p : P}, (Not (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s)) -> (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) p s) -> (Eq.{succ u1} (Set.{u1} P) (setOf.{u1} P (fun (y : P) => AffineSubspace.SOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y)) (Set.image2.{u3, u1, u1} R P P (fun (t : R) (q : P) => HVAdd.hVAdd.{u2, u1, u1} V P P (instHVAdd.{u2, u1} V P (AddAction.toVAdd.{u2, u1} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4))) (HSMul.hSMul.{u3, u2, u2} R V V (instHSMul.{u3, u2} R V (SMulZeroClass.toSMul.{u3, u2} R V (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (SMulWithZero.toSMulZeroClass.{u3, u2} R V (CommMonoidWithZero.toZero.{u3} R (CommGroupWithZero.toCommMonoidWithZero.{u3} R (Semifield.toCommGroupWithZero.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1))))) (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (MulActionWithZero.toSMulWithZero.{u3, u2} R V (Semiring.toMonoidWithZero.{u3} R (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1))))) (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (Module.toMulActionWithZero.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3))))) t (VSub.vsub.{u2, u1} V P (AddTorsor.toVSub.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p)) q) (Set.Iio.{u3} R (PartialOrder.toPreorder.{u3} R (StrictOrderedRing.toPartialOrder.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1))))) (OfNat.ofNat.{u3} R 0 (Zero.toOfNat0.{u3} R (CommMonoidWithZero.toZero.{u3} R (CommGroupWithZero.toCommMonoidWithZero.{u3} R (Semifield.toCommGroupWithZero.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))))))) (SetLike.coe.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) s)))
+<too large>
Case conversion may be inaccurate. Consider using '#align affine_subspace.set_of_s_opp_side_eq_image2 AffineSubspace.setOf_sOppSide_eq_image2ₓ'. -/
theorem setOf_sOppSide_eq_image2 {s : AffineSubspace R P} {x p : P} (hx : x ∉ s) (hp : p ∈ s) :
{ y | s.SOppSide x y } = Set.image2 (fun (t : R) q => t • (x -ᵥ p) +ᵥ q) (Set.Iio 0) s :=
@@ -1532,10 +1418,7 @@ theorem setOf_sOppSide_eq_image2 {s : AffineSubspace R P} {x p : P} (hx : x ∉
#align affine_subspace.set_of_s_opp_side_eq_image2 AffineSubspace.setOf_sOppSide_eq_image2
/- warning: affine_subspace.w_opp_side_point_reflection -> AffineSubspace.wOppSide_pointReflection is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} (y : P), (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s) -> (AffineSubspace.WOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s y (coeFn.{max (succ u3) (succ u2), succ u3} (AffineEquiv.{u1, u3, u3, u2, u2} R P P V V (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4 _inst_2 _inst_3 _inst_4) (fun (_x : AffineEquiv.{u1, u3, u3, u2, u2} R P P V V (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4 _inst_2 _inst_3 _inst_4) => P -> P) (AffineEquiv.hasCoeToFun.{u1, u3, u3, u2, u2} R P P V V (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4 _inst_2 _inst_3 _inst_4) (AffineEquiv.pointReflection.{u1, u3, u2} R P V (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4 x) y))
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} (y : P), (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s) -> (AffineSubspace.WOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s y (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u1} (AffineEquiv.{u3, u1, u1, u2, u2} R P P V V (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4 _inst_2 _inst_3 _inst_4) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineEquiv._hyg.1470 : P) => P) _x) (EmbeddingLike.toFunLike.{max (succ u1) (succ u2), succ u1, succ u1} (AffineEquiv.{u3, u1, u1, u2, u2} R P P V V (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4 _inst_2 _inst_3 _inst_4) P P (EquivLike.toEmbeddingLike.{max (succ u1) (succ u2), succ u1, succ u1} (AffineEquiv.{u3, u1, u1, u2, u2} R P P V V (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4 _inst_2 _inst_3 _inst_4) P P (AffineEquiv.equivLike.{u3, u1, u1, u2, u2} R P P V V (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4 _inst_2 _inst_3 _inst_4))) (AffineEquiv.pointReflection.{u3, u1, u2} R P V (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4 x) y))
+<too large>
Case conversion may be inaccurate. Consider using '#align affine_subspace.w_opp_side_point_reflection AffineSubspace.wOppSide_pointReflectionₓ'. -/
theorem wOppSide_pointReflection {s : AffineSubspace R P} {x : P} (y : P) (hx : x ∈ s) :
s.WOppSide y (pointReflection R x y) :=
@@ -1543,10 +1426,7 @@ theorem wOppSide_pointReflection {s : AffineSubspace R P} {x : P} (y : P) (hx :
#align affine_subspace.w_opp_side_point_reflection AffineSubspace.wOppSide_pointReflection
/- warning: affine_subspace.s_opp_side_point_reflection -> AffineSubspace.sOppSide_pointReflection is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s) -> (Not (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s)) -> (AffineSubspace.SOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s y (coeFn.{max (succ u3) (succ u2), succ u3} (AffineEquiv.{u1, u3, u3, u2, u2} R P P V V (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4 _inst_2 _inst_3 _inst_4) (fun (_x : AffineEquiv.{u1, u3, u3, u2, u2} R P P V V (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4 _inst_2 _inst_3 _inst_4) => P -> P) (AffineEquiv.hasCoeToFun.{u1, u3, u3, u2, u2} R P P V V (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4 _inst_2 _inst_3 _inst_4) (AffineEquiv.pointReflection.{u1, u3, u2} R P V (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4 x) y))
-but is expected to have type
- forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s) -> (Not (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s)) -> (AffineSubspace.SOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s y (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u1} (AffineEquiv.{u3, u1, u1, u2, u2} R P P V V (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4 _inst_2 _inst_3 _inst_4) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineEquiv._hyg.1470 : P) => P) _x) (EmbeddingLike.toFunLike.{max (succ u1) (succ u2), succ u1, succ u1} (AffineEquiv.{u3, u1, u1, u2, u2} R P P V V (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4 _inst_2 _inst_3 _inst_4) P P (EquivLike.toEmbeddingLike.{max (succ u1) (succ u2), succ u1, succ u1} (AffineEquiv.{u3, u1, u1, u2, u2} R P P V V (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4 _inst_2 _inst_3 _inst_4) P P (AffineEquiv.equivLike.{u3, u1, u1, u2, u2} R P P V V (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4 _inst_2 _inst_3 _inst_4))) (AffineEquiv.pointReflection.{u3, u1, u2} R P V (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4 x) y))
+<too large>
Case conversion may be inaccurate. Consider using '#align affine_subspace.s_opp_side_point_reflection AffineSubspace.sOppSide_pointReflectionₓ'. -/
theorem sOppSide_pointReflection {s : AffineSubspace R P} {x y : P} (hx : x ∈ s) (hy : y ∉ s) :
s.SOppSide y (pointReflection R x y) :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/ef95945cd48c932c9e034872bd25c3c220d9c946
@@ -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 analysis.convex.side
-! leanprover-community/mathlib commit a63928c34ec358b5edcda2bf7513c50052a5230f
+! leanprover-community/mathlib commit 61db041ab8e4aaf8cb5c7dc10a7d4ff261997536
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -15,6 +15,9 @@ import Mathbin.Analysis.Normed.Group.AddTorsor
/-!
# Sides of affine subspaces
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
This file defines notions of two points being on the same or opposite sides of an affine subspace.
## Main definitions
mathlib commit https://github.com/leanprover-community/mathlib/commit/75e7fca56381d056096ce5d05e938f63a6567828
@@ -46,29 +46,43 @@ variable [AddCommGroup V'] [Module R V'] [AddTorsor V' P']
include V
/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (p₁ p₂ «expr ∈ » s) -/
+#print AffineSubspace.WSameSide /-
/-- The points `x` and `y` are weakly on the same side of `s`. -/
def WSameSide (s : AffineSubspace R P) (x y : P) : Prop :=
∃ (p₁ : _)(_ : p₁ ∈ s)(p₂ : _)(_ : p₂ ∈ s), SameRay R (x -ᵥ p₁) (y -ᵥ p₂)
#align affine_subspace.w_same_side AffineSubspace.WSameSide
+-/
+#print AffineSubspace.SSameSide /-
/-- The points `x` and `y` are strictly on the same side of `s`. -/
def SSameSide (s : AffineSubspace R P) (x y : P) : Prop :=
s.WSameSide x y ∧ x ∉ s ∧ y ∉ s
#align affine_subspace.s_same_side AffineSubspace.SSameSide
+-/
/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (p₁ p₂ «expr ∈ » s) -/
+#print AffineSubspace.WOppSide /-
/-- The points `x` and `y` are weakly on opposite sides of `s`. -/
def WOppSide (s : AffineSubspace R P) (x y : P) : Prop :=
∃ (p₁ : _)(_ : p₁ ∈ s)(p₂ : _)(_ : p₂ ∈ s), SameRay R (x -ᵥ p₁) (p₂ -ᵥ y)
#align affine_subspace.w_opp_side AffineSubspace.WOppSide
+-/
+#print AffineSubspace.SOppSide /-
/-- The points `x` and `y` are strictly on opposite sides of `s`. -/
def SOppSide (s : AffineSubspace R P) (x y : P) : Prop :=
s.WOppSide x y ∧ x ∉ s ∧ y ∉ s
#align affine_subspace.s_opp_side AffineSubspace.SOppSide
+-/
include V'
+/- warning: affine_subspace.w_same_side.map -> AffineSubspace.WSameSide.map is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {V' : Type.{u3}} {P : Type.{u4}} {P' : Type.{u5}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u4} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] [_inst_5 : AddCommGroup.{u3} V'] [_inst_6 : Module.{u1, u3} R V' (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u3} V' _inst_5)] [_inst_7 : AddTorsor.{u3, u5} V' P' (AddCommGroup.toAddGroup.{u3} V' _inst_5)] {s : AffineSubspace.{u1, u2, u4} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.WSameSide.{u1, u2, u4} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) -> (forall (f : AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7), AffineSubspace.WSameSide.{u1, u3, u5} R V' P' _inst_1 _inst_5 _inst_6 _inst_7 (AffineSubspace.map.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 f s) (coeFn.{max (succ u2) (succ u4) (succ u3) (succ u5), max (succ u4) (succ u5)} (AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (fun (_x : AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) => P -> P') (AffineMap.hasCoeToFun.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f x) (coeFn.{max (succ u2) (succ u4) (succ u3) (succ u5), max (succ u4) (succ u5)} (AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (fun (_x : AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) => P -> P') (AffineMap.hasCoeToFun.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f y))
+but is expected to have type
+ forall {R : Type.{u5}} {V : Type.{u4}} {V' : Type.{u2}} {P : Type.{u3}} {P' : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u5} R] [_inst_2 : AddCommGroup.{u4} V] [_inst_3 : Module.{u5, u4} R V (StrictOrderedSemiring.toSemiring.{u5} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u5} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u5} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u4} V _inst_2)] [_inst_4 : AddTorsor.{u4, u3} V P (AddCommGroup.toAddGroup.{u4} V _inst_2)] [_inst_5 : AddCommGroup.{u2} V'] [_inst_6 : Module.{u5, u2} R V' (StrictOrderedSemiring.toSemiring.{u5} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u5} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u5} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V' _inst_5)] [_inst_7 : AddTorsor.{u2, u1} V' P' (AddCommGroup.toAddGroup.{u2} V' _inst_5)] {s : AffineSubspace.{u5, u4, u3} R V P (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.WSameSide.{u5, u4, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) -> (forall (f : AffineMap.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7), AffineSubspace.WSameSide.{u5, u2, u1} R V' P' _inst_1 _inst_5 _inst_6 _inst_7 (AffineSubspace.map.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 f s) (FunLike.coe.{max (max (max (succ u4) (succ u3)) (succ u2)) (succ u1), succ u3, succ u1} (AffineMap.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => P') _x) (AffineMap.funLike.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f x) (FunLike.coe.{max (max (max (succ u4) (succ u3)) (succ u2)) (succ u1), succ u3, succ u1} (AffineMap.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => P') _x) (AffineMap.funLike.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f y))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.w_same_side.map AffineSubspace.WSameSide.mapₓ'. -/
theorem WSameSide.map {s : AffineSubspace R P} {x y : P} (h : s.WSameSide x y) (f : P →ᵃ[R] P') :
(s.map f).WSameSide (f x) (f y) :=
by
@@ -78,6 +92,12 @@ theorem WSameSide.map {s : AffineSubspace R P} {x y : P} (h : s.WSameSide x y) (
exact h.map f.linear
#align affine_subspace.w_same_side.map AffineSubspace.WSameSide.map
+/- warning: function.injective.w_same_side_map_iff -> Function.Injective.wSameSide_map_iff is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {V' : Type.{u3}} {P : Type.{u4}} {P' : Type.{u5}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u4} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] [_inst_5 : AddCommGroup.{u3} V'] [_inst_6 : Module.{u1, u3} R V' (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u3} V' _inst_5)] [_inst_7 : AddTorsor.{u3, u5} V' P' (AddCommGroup.toAddGroup.{u3} V' _inst_5)] {s : AffineSubspace.{u1, u2, u4} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {f : AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7}, (Function.Injective.{succ u4, succ u5} P P' (coeFn.{max (succ u2) (succ u4) (succ u3) (succ u5), max (succ u4) (succ u5)} (AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (fun (_x : AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) => P -> P') (AffineMap.hasCoeToFun.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f)) -> (Iff (AffineSubspace.WSameSide.{u1, u3, u5} R V' P' _inst_1 _inst_5 _inst_6 _inst_7 (AffineSubspace.map.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 f s) (coeFn.{max (succ u2) (succ u4) (succ u3) (succ u5), max (succ u4) (succ u5)} (AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (fun (_x : AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) => P -> P') (AffineMap.hasCoeToFun.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f x) (coeFn.{max (succ u2) (succ u4) (succ u3) (succ u5), max (succ u4) (succ u5)} (AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (fun (_x : AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) => P -> P') (AffineMap.hasCoeToFun.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f y)) (AffineSubspace.WSameSide.{u1, u2, u4} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y))
+but is expected to have type
+ forall {R : Type.{u5}} {V : Type.{u4}} {V' : Type.{u2}} {P : Type.{u3}} {P' : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u5} R] [_inst_2 : AddCommGroup.{u4} V] [_inst_3 : Module.{u5, u4} R V (StrictOrderedSemiring.toSemiring.{u5} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u5} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u5} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u4} V _inst_2)] [_inst_4 : AddTorsor.{u4, u3} V P (AddCommGroup.toAddGroup.{u4} V _inst_2)] [_inst_5 : AddCommGroup.{u2} V'] [_inst_6 : Module.{u5, u2} R V' (StrictOrderedSemiring.toSemiring.{u5} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u5} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u5} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V' _inst_5)] [_inst_7 : AddTorsor.{u2, u1} V' P' (AddCommGroup.toAddGroup.{u2} V' _inst_5)] {s : AffineSubspace.{u5, u4, u3} R V P (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {f : AffineMap.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7}, (Function.Injective.{succ u3, succ u1} P P' (FunLike.coe.{max (max (max (succ u4) (succ u3)) (succ u2)) (succ u1), succ u3, succ u1} (AffineMap.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => P') _x) (AffineMap.funLike.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f)) -> (Iff (AffineSubspace.WSameSide.{u5, u2, u1} R V' P' _inst_1 _inst_5 _inst_6 _inst_7 (AffineSubspace.map.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 f s) (FunLike.coe.{max (max (max (succ u4) (succ u3)) (succ u2)) (succ u1), succ u3, succ u1} (AffineMap.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => P') _x) (AffineMap.funLike.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f x) (FunLike.coe.{max (max (max (succ u4) (succ u3)) (succ u2)) (succ u1), succ u3, succ u1} (AffineMap.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => P') _x) (AffineMap.funLike.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f y)) (AffineSubspace.WSameSide.{u5, u4, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y))
+Case conversion may be inaccurate. Consider using '#align function.injective.w_same_side_map_iff Function.Injective.wSameSide_map_iffₓ'. -/
theorem Function.Injective.wSameSide_map_iff {s : AffineSubspace R P} {x y : P} {f : P →ᵃ[R] P'}
(hf : Function.Injective f) : (s.map f).WSameSide (f x) (f y) ↔ s.WSameSide x y :=
by
@@ -91,23 +111,47 @@ theorem Function.Injective.wSameSide_map_iff {s : AffineSubspace R P} {x y : P}
exact h
#align function.injective.w_same_side_map_iff Function.Injective.wSameSide_map_iff
+/- warning: function.injective.s_same_side_map_iff -> Function.Injective.sSameSide_map_iff is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {V' : Type.{u3}} {P : Type.{u4}} {P' : Type.{u5}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u4} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] [_inst_5 : AddCommGroup.{u3} V'] [_inst_6 : Module.{u1, u3} R V' (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u3} V' _inst_5)] [_inst_7 : AddTorsor.{u3, u5} V' P' (AddCommGroup.toAddGroup.{u3} V' _inst_5)] {s : AffineSubspace.{u1, u2, u4} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {f : AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7}, (Function.Injective.{succ u4, succ u5} P P' (coeFn.{max (succ u2) (succ u4) (succ u3) (succ u5), max (succ u4) (succ u5)} (AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (fun (_x : AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) => P -> P') (AffineMap.hasCoeToFun.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f)) -> (Iff (AffineSubspace.SSameSide.{u1, u3, u5} R V' P' _inst_1 _inst_5 _inst_6 _inst_7 (AffineSubspace.map.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 f s) (coeFn.{max (succ u2) (succ u4) (succ u3) (succ u5), max (succ u4) (succ u5)} (AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (fun (_x : AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) => P -> P') (AffineMap.hasCoeToFun.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f x) (coeFn.{max (succ u2) (succ u4) (succ u3) (succ u5), max (succ u4) (succ u5)} (AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (fun (_x : AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) => P -> P') (AffineMap.hasCoeToFun.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f y)) (AffineSubspace.SSameSide.{u1, u2, u4} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y))
+but is expected to have type
+ forall {R : Type.{u5}} {V : Type.{u4}} {V' : Type.{u2}} {P : Type.{u3}} {P' : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u5} R] [_inst_2 : AddCommGroup.{u4} V] [_inst_3 : Module.{u5, u4} R V (StrictOrderedSemiring.toSemiring.{u5} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u5} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u5} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u4} V _inst_2)] [_inst_4 : AddTorsor.{u4, u3} V P (AddCommGroup.toAddGroup.{u4} V _inst_2)] [_inst_5 : AddCommGroup.{u2} V'] [_inst_6 : Module.{u5, u2} R V' (StrictOrderedSemiring.toSemiring.{u5} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u5} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u5} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V' _inst_5)] [_inst_7 : AddTorsor.{u2, u1} V' P' (AddCommGroup.toAddGroup.{u2} V' _inst_5)] {s : AffineSubspace.{u5, u4, u3} R V P (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {f : AffineMap.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7}, (Function.Injective.{succ u3, succ u1} P P' (FunLike.coe.{max (max (max (succ u4) (succ u3)) (succ u2)) (succ u1), succ u3, succ u1} (AffineMap.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => P') _x) (AffineMap.funLike.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f)) -> (Iff (AffineSubspace.SSameSide.{u5, u2, u1} R V' P' _inst_1 _inst_5 _inst_6 _inst_7 (AffineSubspace.map.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 f s) (FunLike.coe.{max (max (max (succ u4) (succ u3)) (succ u2)) (succ u1), succ u3, succ u1} (AffineMap.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => P') _x) (AffineMap.funLike.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f x) (FunLike.coe.{max (max (max (succ u4) (succ u3)) (succ u2)) (succ u1), succ u3, succ u1} (AffineMap.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => P') _x) (AffineMap.funLike.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f y)) (AffineSubspace.SSameSide.{u5, u4, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y))
+Case conversion may be inaccurate. Consider using '#align function.injective.s_same_side_map_iff Function.Injective.sSameSide_map_iffₓ'. -/
theorem Function.Injective.sSameSide_map_iff {s : AffineSubspace R P} {x y : P} {f : P →ᵃ[R] P'}
(hf : Function.Injective f) : (s.map f).SSameSide (f x) (f y) ↔ s.SSameSide x y := by
simp_rw [s_same_side, hf.w_same_side_map_iff, mem_map_iff_mem_of_injective hf]
#align function.injective.s_same_side_map_iff Function.Injective.sSameSide_map_iff
+/- warning: affine_equiv.w_same_side_map_iff -> AffineEquiv.wSameSide_map_iff is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {V' : Type.{u3}} {P : Type.{u4}} {P' : Type.{u5}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u4} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] [_inst_5 : AddCommGroup.{u3} V'] [_inst_6 : Module.{u1, u3} R V' (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u3} V' _inst_5)] [_inst_7 : AddTorsor.{u3, u5} V' P' (AddCommGroup.toAddGroup.{u3} V' _inst_5)] {s : AffineSubspace.{u1, u2, u4} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} (f : AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7), Iff (AffineSubspace.WSameSide.{u1, u3, u5} R V' P' _inst_1 _inst_5 _inst_6 _inst_7 (AffineSubspace.map.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 ((fun (a : Sort.{max (succ u4) (succ u5) (succ u2) (succ u3)}) (b : Sort.{max (succ u2) (succ u4) (succ u3) (succ u5)}) [self : HasLiftT.{max (succ u4) (succ u5) (succ u2) (succ u3), max (succ u2) (succ u4) (succ u3) (succ u5)} a b] => self.0) (AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (HasLiftT.mk.{max (succ u4) (succ u5) (succ u2) (succ u3), max (succ u2) (succ u4) (succ u3) (succ u5)} (AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (CoeTCₓ.coe.{max (succ u4) (succ u5) (succ u2) (succ u3), max (succ u2) (succ u4) (succ u3) (succ u5)} (AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (coeBase.{max (succ u4) (succ u5) (succ u2) (succ u3), max (succ u2) (succ u4) (succ u3) (succ u5)} (AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (AffineEquiv.AffineMap.hasCoe.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7)))) f) s) (coeFn.{max (succ u4) (succ u5) (succ u2) (succ u3), max (succ u4) (succ u5)} (AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (fun (_x : AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) => P -> P') (AffineEquiv.hasCoeToFun.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f x) (coeFn.{max (succ u4) (succ u5) (succ u2) (succ u3), max (succ u4) (succ u5)} (AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (fun (_x : AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) => P -> P') (AffineEquiv.hasCoeToFun.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f y)) (AffineSubspace.WSameSide.{u1, u2, u4} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y)
+but is expected to have type
+ forall {R : Type.{u5}} {V : Type.{u4}} {V' : Type.{u1}} {P : Type.{u3}} {P' : Type.{u2}} [_inst_1 : StrictOrderedCommRing.{u5} R] [_inst_2 : AddCommGroup.{u4} V] [_inst_3 : Module.{u5, u4} R V (StrictOrderedSemiring.toSemiring.{u5} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u5} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u5} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u4} V _inst_2)] [_inst_4 : AddTorsor.{u4, u3} V P (AddCommGroup.toAddGroup.{u4} V _inst_2)] [_inst_5 : AddCommGroup.{u1} V'] [_inst_6 : Module.{u5, u1} R V' (StrictOrderedSemiring.toSemiring.{u5} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u5} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u5} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} V' _inst_5)] [_inst_7 : AddTorsor.{u1, u2} V' P' (AddCommGroup.toAddGroup.{u1} V' _inst_5)] {s : AffineSubspace.{u5, u4, u3} R V P (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} (f : AffineEquiv.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7), Iff (AffineSubspace.WSameSide.{u5, u1, u2} R V' ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineEquiv._hyg.1470 : P) => P') x) _inst_1 _inst_5 _inst_6 _inst_7 (AffineSubspace.map.{u5, u4, u3, u1, u2} R V P V' ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineEquiv._hyg.1470 : P) => P') x) (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 (AffineEquiv.toAffineMap.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 f) s) (FunLike.coe.{max (max (max (succ u3) (succ u2)) (succ u4)) (succ u1), succ u3, succ u2} (AffineEquiv.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineEquiv._hyg.1470 : P) => P') _x) (EmbeddingLike.toFunLike.{max (max (max (succ u3) (succ u2)) (succ u4)) (succ u1), succ u3, succ u2} (AffineEquiv.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P P' (EquivLike.toEmbeddingLike.{max (max (max (succ u3) (succ u2)) (succ u4)) (succ u1), succ u3, succ u2} (AffineEquiv.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P P' (AffineEquiv.equivLike.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7))) f x) (FunLike.coe.{max (max (max (succ u3) (succ u2)) (succ u4)) (succ u1), succ u3, succ u2} (AffineEquiv.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineEquiv._hyg.1470 : P) => P') _x) (EmbeddingLike.toFunLike.{max (max (max (succ u3) (succ u2)) (succ u4)) (succ u1), succ u3, succ u2} (AffineEquiv.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P P' (EquivLike.toEmbeddingLike.{max (max (max (succ u3) (succ u2)) (succ u4)) (succ u1), succ u3, succ u2} (AffineEquiv.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P P' (AffineEquiv.equivLike.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7))) f y)) (AffineSubspace.WSameSide.{u5, u4, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y)
+Case conversion may be inaccurate. Consider using '#align affine_equiv.w_same_side_map_iff AffineEquiv.wSameSide_map_iffₓ'. -/
@[simp]
theorem AffineEquiv.wSameSide_map_iff {s : AffineSubspace R P} {x y : P} (f : P ≃ᵃ[R] P') :
(s.map ↑f).WSameSide (f x) (f y) ↔ s.WSameSide x y :=
(show Function.Injective f.toAffineMap from f.Injective).wSameSide_map_iff
#align affine_equiv.w_same_side_map_iff AffineEquiv.wSameSide_map_iff
+/- warning: affine_equiv.s_same_side_map_iff -> AffineEquiv.sSameSide_map_iff is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {V' : Type.{u3}} {P : Type.{u4}} {P' : Type.{u5}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u4} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] [_inst_5 : AddCommGroup.{u3} V'] [_inst_6 : Module.{u1, u3} R V' (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u3} V' _inst_5)] [_inst_7 : AddTorsor.{u3, u5} V' P' (AddCommGroup.toAddGroup.{u3} V' _inst_5)] {s : AffineSubspace.{u1, u2, u4} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} (f : AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7), Iff (AffineSubspace.SSameSide.{u1, u3, u5} R V' P' _inst_1 _inst_5 _inst_6 _inst_7 (AffineSubspace.map.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 ((fun (a : Sort.{max (succ u4) (succ u5) (succ u2) (succ u3)}) (b : Sort.{max (succ u2) (succ u4) (succ u3) (succ u5)}) [self : HasLiftT.{max (succ u4) (succ u5) (succ u2) (succ u3), max (succ u2) (succ u4) (succ u3) (succ u5)} a b] => self.0) (AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (HasLiftT.mk.{max (succ u4) (succ u5) (succ u2) (succ u3), max (succ u2) (succ u4) (succ u3) (succ u5)} (AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (CoeTCₓ.coe.{max (succ u4) (succ u5) (succ u2) (succ u3), max (succ u2) (succ u4) (succ u3) (succ u5)} (AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (coeBase.{max (succ u4) (succ u5) (succ u2) (succ u3), max (succ u2) (succ u4) (succ u3) (succ u5)} (AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (AffineEquiv.AffineMap.hasCoe.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7)))) f) s) (coeFn.{max (succ u4) (succ u5) (succ u2) (succ u3), max (succ u4) (succ u5)} (AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (fun (_x : AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) => P -> P') (AffineEquiv.hasCoeToFun.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f x) (coeFn.{max (succ u4) (succ u5) (succ u2) (succ u3), max (succ u4) (succ u5)} (AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (fun (_x : AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) => P -> P') (AffineEquiv.hasCoeToFun.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f y)) (AffineSubspace.SSameSide.{u1, u2, u4} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y)
+but is expected to have type
+ forall {R : Type.{u5}} {V : Type.{u4}} {V' : Type.{u1}} {P : Type.{u3}} {P' : Type.{u2}} [_inst_1 : StrictOrderedCommRing.{u5} R] [_inst_2 : AddCommGroup.{u4} V] [_inst_3 : Module.{u5, u4} R V (StrictOrderedSemiring.toSemiring.{u5} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u5} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u5} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u4} V _inst_2)] [_inst_4 : AddTorsor.{u4, u3} V P (AddCommGroup.toAddGroup.{u4} V _inst_2)] [_inst_5 : AddCommGroup.{u1} V'] [_inst_6 : Module.{u5, u1} R V' (StrictOrderedSemiring.toSemiring.{u5} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u5} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u5} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} V' _inst_5)] [_inst_7 : AddTorsor.{u1, u2} V' P' (AddCommGroup.toAddGroup.{u1} V' _inst_5)] {s : AffineSubspace.{u5, u4, u3} R V P (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} (f : AffineEquiv.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7), Iff (AffineSubspace.SSameSide.{u5, u1, u2} R V' ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineEquiv._hyg.1470 : P) => P') x) _inst_1 _inst_5 _inst_6 _inst_7 (AffineSubspace.map.{u5, u4, u3, u1, u2} R V P V' ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineEquiv._hyg.1470 : P) => P') x) (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 (AffineEquiv.toAffineMap.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 f) s) (FunLike.coe.{max (max (max (succ u3) (succ u2)) (succ u4)) (succ u1), succ u3, succ u2} (AffineEquiv.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineEquiv._hyg.1470 : P) => P') _x) (EmbeddingLike.toFunLike.{max (max (max (succ u3) (succ u2)) (succ u4)) (succ u1), succ u3, succ u2} (AffineEquiv.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P P' (EquivLike.toEmbeddingLike.{max (max (max (succ u3) (succ u2)) (succ u4)) (succ u1), succ u3, succ u2} (AffineEquiv.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P P' (AffineEquiv.equivLike.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7))) f x) (FunLike.coe.{max (max (max (succ u3) (succ u2)) (succ u4)) (succ u1), succ u3, succ u2} (AffineEquiv.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineEquiv._hyg.1470 : P) => P') _x) (EmbeddingLike.toFunLike.{max (max (max (succ u3) (succ u2)) (succ u4)) (succ u1), succ u3, succ u2} (AffineEquiv.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P P' (EquivLike.toEmbeddingLike.{max (max (max (succ u3) (succ u2)) (succ u4)) (succ u1), succ u3, succ u2} (AffineEquiv.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P P' (AffineEquiv.equivLike.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7))) f y)) (AffineSubspace.SSameSide.{u5, u4, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y)
+Case conversion may be inaccurate. Consider using '#align affine_equiv.s_same_side_map_iff AffineEquiv.sSameSide_map_iffₓ'. -/
@[simp]
theorem AffineEquiv.sSameSide_map_iff {s : AffineSubspace R P} {x y : P} (f : P ≃ᵃ[R] P') :
(s.map ↑f).SSameSide (f x) (f y) ↔ s.SSameSide x y :=
(show Function.Injective f.toAffineMap from f.Injective).sSameSide_map_iff
#align affine_equiv.s_same_side_map_iff AffineEquiv.sSameSide_map_iff
+/- warning: affine_subspace.w_opp_side.map -> AffineSubspace.WOppSide.map is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {V' : Type.{u3}} {P : Type.{u4}} {P' : Type.{u5}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u4} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] [_inst_5 : AddCommGroup.{u3} V'] [_inst_6 : Module.{u1, u3} R V' (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u3} V' _inst_5)] [_inst_7 : AddTorsor.{u3, u5} V' P' (AddCommGroup.toAddGroup.{u3} V' _inst_5)] {s : AffineSubspace.{u1, u2, u4} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.WOppSide.{u1, u2, u4} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) -> (forall (f : AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7), AffineSubspace.WOppSide.{u1, u3, u5} R V' P' _inst_1 _inst_5 _inst_6 _inst_7 (AffineSubspace.map.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 f s) (coeFn.{max (succ u2) (succ u4) (succ u3) (succ u5), max (succ u4) (succ u5)} (AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (fun (_x : AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) => P -> P') (AffineMap.hasCoeToFun.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f x) (coeFn.{max (succ u2) (succ u4) (succ u3) (succ u5), max (succ u4) (succ u5)} (AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (fun (_x : AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) => P -> P') (AffineMap.hasCoeToFun.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f y))
+but is expected to have type
+ forall {R : Type.{u5}} {V : Type.{u4}} {V' : Type.{u2}} {P : Type.{u3}} {P' : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u5} R] [_inst_2 : AddCommGroup.{u4} V] [_inst_3 : Module.{u5, u4} R V (StrictOrderedSemiring.toSemiring.{u5} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u5} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u5} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u4} V _inst_2)] [_inst_4 : AddTorsor.{u4, u3} V P (AddCommGroup.toAddGroup.{u4} V _inst_2)] [_inst_5 : AddCommGroup.{u2} V'] [_inst_6 : Module.{u5, u2} R V' (StrictOrderedSemiring.toSemiring.{u5} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u5} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u5} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V' _inst_5)] [_inst_7 : AddTorsor.{u2, u1} V' P' (AddCommGroup.toAddGroup.{u2} V' _inst_5)] {s : AffineSubspace.{u5, u4, u3} R V P (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.WOppSide.{u5, u4, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) -> (forall (f : AffineMap.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7), AffineSubspace.WOppSide.{u5, u2, u1} R V' P' _inst_1 _inst_5 _inst_6 _inst_7 (AffineSubspace.map.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 f s) (FunLike.coe.{max (max (max (succ u4) (succ u3)) (succ u2)) (succ u1), succ u3, succ u1} (AffineMap.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => P') _x) (AffineMap.funLike.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f x) (FunLike.coe.{max (max (max (succ u4) (succ u3)) (succ u2)) (succ u1), succ u3, succ u1} (AffineMap.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => P') _x) (AffineMap.funLike.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f y))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.w_opp_side.map AffineSubspace.WOppSide.mapₓ'. -/
theorem WOppSide.map {s : AffineSubspace R P} {x y : P} (h : s.WOppSide x y) (f : P →ᵃ[R] P') :
(s.map f).WOppSide (f x) (f y) :=
by
@@ -117,6 +161,12 @@ theorem WOppSide.map {s : AffineSubspace R P} {x y : P} (h : s.WOppSide x y) (f
exact h.map f.linear
#align affine_subspace.w_opp_side.map AffineSubspace.WOppSide.map
+/- warning: function.injective.w_opp_side_map_iff -> Function.Injective.wOppSide_map_iff is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {V' : Type.{u3}} {P : Type.{u4}} {P' : Type.{u5}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u4} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] [_inst_5 : AddCommGroup.{u3} V'] [_inst_6 : Module.{u1, u3} R V' (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u3} V' _inst_5)] [_inst_7 : AddTorsor.{u3, u5} V' P' (AddCommGroup.toAddGroup.{u3} V' _inst_5)] {s : AffineSubspace.{u1, u2, u4} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {f : AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7}, (Function.Injective.{succ u4, succ u5} P P' (coeFn.{max (succ u2) (succ u4) (succ u3) (succ u5), max (succ u4) (succ u5)} (AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (fun (_x : AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) => P -> P') (AffineMap.hasCoeToFun.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f)) -> (Iff (AffineSubspace.WOppSide.{u1, u3, u5} R V' P' _inst_1 _inst_5 _inst_6 _inst_7 (AffineSubspace.map.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 f s) (coeFn.{max (succ u2) (succ u4) (succ u3) (succ u5), max (succ u4) (succ u5)} (AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (fun (_x : AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) => P -> P') (AffineMap.hasCoeToFun.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f x) (coeFn.{max (succ u2) (succ u4) (succ u3) (succ u5), max (succ u4) (succ u5)} (AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (fun (_x : AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) => P -> P') (AffineMap.hasCoeToFun.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f y)) (AffineSubspace.WOppSide.{u1, u2, u4} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y))
+but is expected to have type
+ forall {R : Type.{u5}} {V : Type.{u4}} {V' : Type.{u2}} {P : Type.{u3}} {P' : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u5} R] [_inst_2 : AddCommGroup.{u4} V] [_inst_3 : Module.{u5, u4} R V (StrictOrderedSemiring.toSemiring.{u5} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u5} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u5} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u4} V _inst_2)] [_inst_4 : AddTorsor.{u4, u3} V P (AddCommGroup.toAddGroup.{u4} V _inst_2)] [_inst_5 : AddCommGroup.{u2} V'] [_inst_6 : Module.{u5, u2} R V' (StrictOrderedSemiring.toSemiring.{u5} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u5} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u5} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V' _inst_5)] [_inst_7 : AddTorsor.{u2, u1} V' P' (AddCommGroup.toAddGroup.{u2} V' _inst_5)] {s : AffineSubspace.{u5, u4, u3} R V P (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {f : AffineMap.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7}, (Function.Injective.{succ u3, succ u1} P P' (FunLike.coe.{max (max (max (succ u4) (succ u3)) (succ u2)) (succ u1), succ u3, succ u1} (AffineMap.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => P') _x) (AffineMap.funLike.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f)) -> (Iff (AffineSubspace.WOppSide.{u5, u2, u1} R V' P' _inst_1 _inst_5 _inst_6 _inst_7 (AffineSubspace.map.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 f s) (FunLike.coe.{max (max (max (succ u4) (succ u3)) (succ u2)) (succ u1), succ u3, succ u1} (AffineMap.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => P') _x) (AffineMap.funLike.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f x) (FunLike.coe.{max (max (max (succ u4) (succ u3)) (succ u2)) (succ u1), succ u3, succ u1} (AffineMap.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => P') _x) (AffineMap.funLike.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f y)) (AffineSubspace.WOppSide.{u5, u4, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y))
+Case conversion may be inaccurate. Consider using '#align function.injective.w_opp_side_map_iff Function.Injective.wOppSide_map_iffₓ'. -/
theorem Function.Injective.wOppSide_map_iff {s : AffineSubspace R P} {x y : P} {f : P →ᵃ[R] P'}
(hf : Function.Injective f) : (s.map f).WOppSide (f x) (f y) ↔ s.WOppSide x y :=
by
@@ -130,17 +180,35 @@ theorem Function.Injective.wOppSide_map_iff {s : AffineSubspace R P} {x y : P} {
exact h
#align function.injective.w_opp_side_map_iff Function.Injective.wOppSide_map_iff
+/- warning: function.injective.s_opp_side_map_iff -> Function.Injective.sOppSide_map_iff is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {V' : Type.{u3}} {P : Type.{u4}} {P' : Type.{u5}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u4} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] [_inst_5 : AddCommGroup.{u3} V'] [_inst_6 : Module.{u1, u3} R V' (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u3} V' _inst_5)] [_inst_7 : AddTorsor.{u3, u5} V' P' (AddCommGroup.toAddGroup.{u3} V' _inst_5)] {s : AffineSubspace.{u1, u2, u4} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {f : AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7}, (Function.Injective.{succ u4, succ u5} P P' (coeFn.{max (succ u2) (succ u4) (succ u3) (succ u5), max (succ u4) (succ u5)} (AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (fun (_x : AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) => P -> P') (AffineMap.hasCoeToFun.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f)) -> (Iff (AffineSubspace.SOppSide.{u1, u3, u5} R V' P' _inst_1 _inst_5 _inst_6 _inst_7 (AffineSubspace.map.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 f s) (coeFn.{max (succ u2) (succ u4) (succ u3) (succ u5), max (succ u4) (succ u5)} (AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (fun (_x : AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) => P -> P') (AffineMap.hasCoeToFun.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f x) (coeFn.{max (succ u2) (succ u4) (succ u3) (succ u5), max (succ u4) (succ u5)} (AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (fun (_x : AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) => P -> P') (AffineMap.hasCoeToFun.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f y)) (AffineSubspace.SOppSide.{u1, u2, u4} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y))
+but is expected to have type
+ forall {R : Type.{u5}} {V : Type.{u4}} {V' : Type.{u2}} {P : Type.{u3}} {P' : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u5} R] [_inst_2 : AddCommGroup.{u4} V] [_inst_3 : Module.{u5, u4} R V (StrictOrderedSemiring.toSemiring.{u5} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u5} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u5} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u4} V _inst_2)] [_inst_4 : AddTorsor.{u4, u3} V P (AddCommGroup.toAddGroup.{u4} V _inst_2)] [_inst_5 : AddCommGroup.{u2} V'] [_inst_6 : Module.{u5, u2} R V' (StrictOrderedSemiring.toSemiring.{u5} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u5} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u5} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V' _inst_5)] [_inst_7 : AddTorsor.{u2, u1} V' P' (AddCommGroup.toAddGroup.{u2} V' _inst_5)] {s : AffineSubspace.{u5, u4, u3} R V P (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {f : AffineMap.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7}, (Function.Injective.{succ u3, succ u1} P P' (FunLike.coe.{max (max (max (succ u4) (succ u3)) (succ u2)) (succ u1), succ u3, succ u1} (AffineMap.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => P') _x) (AffineMap.funLike.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f)) -> (Iff (AffineSubspace.SOppSide.{u5, u2, u1} R V' P' _inst_1 _inst_5 _inst_6 _inst_7 (AffineSubspace.map.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 f s) (FunLike.coe.{max (max (max (succ u4) (succ u3)) (succ u2)) (succ u1), succ u3, succ u1} (AffineMap.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => P') _x) (AffineMap.funLike.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f x) (FunLike.coe.{max (max (max (succ u4) (succ u3)) (succ u2)) (succ u1), succ u3, succ u1} (AffineMap.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : P) => P') _x) (AffineMap.funLike.{u5, u4, u3, u2, u1} R V P V' P' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f y)) (AffineSubspace.SOppSide.{u5, u4, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y))
+Case conversion may be inaccurate. Consider using '#align function.injective.s_opp_side_map_iff Function.Injective.sOppSide_map_iffₓ'. -/
theorem Function.Injective.sOppSide_map_iff {s : AffineSubspace R P} {x y : P} {f : P →ᵃ[R] P'}
(hf : Function.Injective f) : (s.map f).SOppSide (f x) (f y) ↔ s.SOppSide x y := by
simp_rw [s_opp_side, hf.w_opp_side_map_iff, mem_map_iff_mem_of_injective hf]
#align function.injective.s_opp_side_map_iff Function.Injective.sOppSide_map_iff
+/- warning: affine_equiv.w_opp_side_map_iff -> AffineEquiv.wOppSide_map_iff is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {V' : Type.{u3}} {P : Type.{u4}} {P' : Type.{u5}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u4} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] [_inst_5 : AddCommGroup.{u3} V'] [_inst_6 : Module.{u1, u3} R V' (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u3} V' _inst_5)] [_inst_7 : AddTorsor.{u3, u5} V' P' (AddCommGroup.toAddGroup.{u3} V' _inst_5)] {s : AffineSubspace.{u1, u2, u4} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} (f : AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7), Iff (AffineSubspace.WOppSide.{u1, u3, u5} R V' P' _inst_1 _inst_5 _inst_6 _inst_7 (AffineSubspace.map.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 ((fun (a : Sort.{max (succ u4) (succ u5) (succ u2) (succ u3)}) (b : Sort.{max (succ u2) (succ u4) (succ u3) (succ u5)}) [self : HasLiftT.{max (succ u4) (succ u5) (succ u2) (succ u3), max (succ u2) (succ u4) (succ u3) (succ u5)} a b] => self.0) (AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (HasLiftT.mk.{max (succ u4) (succ u5) (succ u2) (succ u3), max (succ u2) (succ u4) (succ u3) (succ u5)} (AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (CoeTCₓ.coe.{max (succ u4) (succ u5) (succ u2) (succ u3), max (succ u2) (succ u4) (succ u3) (succ u5)} (AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (coeBase.{max (succ u4) (succ u5) (succ u2) (succ u3), max (succ u2) (succ u4) (succ u3) (succ u5)} (AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (AffineEquiv.AffineMap.hasCoe.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7)))) f) s) (coeFn.{max (succ u4) (succ u5) (succ u2) (succ u3), max (succ u4) (succ u5)} (AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (fun (_x : AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) => P -> P') (AffineEquiv.hasCoeToFun.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f x) (coeFn.{max (succ u4) (succ u5) (succ u2) (succ u3), max (succ u4) (succ u5)} (AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (fun (_x : AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) => P -> P') (AffineEquiv.hasCoeToFun.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f y)) (AffineSubspace.WOppSide.{u1, u2, u4} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y)
+but is expected to have type
+ forall {R : Type.{u5}} {V : Type.{u4}} {V' : Type.{u1}} {P : Type.{u3}} {P' : Type.{u2}} [_inst_1 : StrictOrderedCommRing.{u5} R] [_inst_2 : AddCommGroup.{u4} V] [_inst_3 : Module.{u5, u4} R V (StrictOrderedSemiring.toSemiring.{u5} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u5} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u5} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u4} V _inst_2)] [_inst_4 : AddTorsor.{u4, u3} V P (AddCommGroup.toAddGroup.{u4} V _inst_2)] [_inst_5 : AddCommGroup.{u1} V'] [_inst_6 : Module.{u5, u1} R V' (StrictOrderedSemiring.toSemiring.{u5} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u5} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u5} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} V' _inst_5)] [_inst_7 : AddTorsor.{u1, u2} V' P' (AddCommGroup.toAddGroup.{u1} V' _inst_5)] {s : AffineSubspace.{u5, u4, u3} R V P (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} (f : AffineEquiv.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7), Iff (AffineSubspace.WOppSide.{u5, u1, u2} R V' ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineEquiv._hyg.1470 : P) => P') x) _inst_1 _inst_5 _inst_6 _inst_7 (AffineSubspace.map.{u5, u4, u3, u1, u2} R V P V' ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineEquiv._hyg.1470 : P) => P') x) (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 (AffineEquiv.toAffineMap.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 f) s) (FunLike.coe.{max (max (max (succ u3) (succ u2)) (succ u4)) (succ u1), succ u3, succ u2} (AffineEquiv.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineEquiv._hyg.1470 : P) => P') _x) (EmbeddingLike.toFunLike.{max (max (max (succ u3) (succ u2)) (succ u4)) (succ u1), succ u3, succ u2} (AffineEquiv.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P P' (EquivLike.toEmbeddingLike.{max (max (max (succ u3) (succ u2)) (succ u4)) (succ u1), succ u3, succ u2} (AffineEquiv.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P P' (AffineEquiv.equivLike.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7))) f x) (FunLike.coe.{max (max (max (succ u3) (succ u2)) (succ u4)) (succ u1), succ u3, succ u2} (AffineEquiv.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineEquiv._hyg.1470 : P) => P') _x) (EmbeddingLike.toFunLike.{max (max (max (succ u3) (succ u2)) (succ u4)) (succ u1), succ u3, succ u2} (AffineEquiv.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P P' (EquivLike.toEmbeddingLike.{max (max (max (succ u3) (succ u2)) (succ u4)) (succ u1), succ u3, succ u2} (AffineEquiv.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P P' (AffineEquiv.equivLike.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7))) f y)) (AffineSubspace.WOppSide.{u5, u4, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y)
+Case conversion may be inaccurate. Consider using '#align affine_equiv.w_opp_side_map_iff AffineEquiv.wOppSide_map_iffₓ'. -/
@[simp]
theorem AffineEquiv.wOppSide_map_iff {s : AffineSubspace R P} {x y : P} (f : P ≃ᵃ[R] P') :
(s.map ↑f).WOppSide (f x) (f y) ↔ s.WOppSide x y :=
(show Function.Injective f.toAffineMap from f.Injective).wOppSide_map_iff
#align affine_equiv.w_opp_side_map_iff AffineEquiv.wOppSide_map_iff
+/- warning: affine_equiv.s_opp_side_map_iff -> AffineEquiv.sOppSide_map_iff is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {V' : Type.{u3}} {P : Type.{u4}} {P' : Type.{u5}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u4} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] [_inst_5 : AddCommGroup.{u3} V'] [_inst_6 : Module.{u1, u3} R V' (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u3} V' _inst_5)] [_inst_7 : AddTorsor.{u3, u5} V' P' (AddCommGroup.toAddGroup.{u3} V' _inst_5)] {s : AffineSubspace.{u1, u2, u4} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} (f : AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7), Iff (AffineSubspace.SOppSide.{u1, u3, u5} R V' P' _inst_1 _inst_5 _inst_6 _inst_7 (AffineSubspace.map.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 ((fun (a : Sort.{max (succ u4) (succ u5) (succ u2) (succ u3)}) (b : Sort.{max (succ u2) (succ u4) (succ u3) (succ u5)}) [self : HasLiftT.{max (succ u4) (succ u5) (succ u2) (succ u3), max (succ u2) (succ u4) (succ u3) (succ u5)} a b] => self.0) (AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (HasLiftT.mk.{max (succ u4) (succ u5) (succ u2) (succ u3), max (succ u2) (succ u4) (succ u3) (succ u5)} (AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (CoeTCₓ.coe.{max (succ u4) (succ u5) (succ u2) (succ u3), max (succ u2) (succ u4) (succ u3) (succ u5)} (AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (coeBase.{max (succ u4) (succ u5) (succ u2) (succ u3), max (succ u2) (succ u4) (succ u3) (succ u5)} (AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (AffineMap.{u1, u2, u4, u3, u5} R V P V' P' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (AffineEquiv.AffineMap.hasCoe.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7)))) f) s) (coeFn.{max (succ u4) (succ u5) (succ u2) (succ u3), max (succ u4) (succ u5)} (AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (fun (_x : AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) => P -> P') (AffineEquiv.hasCoeToFun.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f x) (coeFn.{max (succ u4) (succ u5) (succ u2) (succ u3), max (succ u4) (succ u5)} (AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) (fun (_x : AffineEquiv.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) => P -> P') (AffineEquiv.hasCoeToFun.{u1, u4, u5, u2, u3} R P P' V V' (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) f y)) (AffineSubspace.SOppSide.{u1, u2, u4} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y)
+but is expected to have type
+ forall {R : Type.{u5}} {V : Type.{u4}} {V' : Type.{u1}} {P : Type.{u3}} {P' : Type.{u2}} [_inst_1 : StrictOrderedCommRing.{u5} R] [_inst_2 : AddCommGroup.{u4} V] [_inst_3 : Module.{u5, u4} R V (StrictOrderedSemiring.toSemiring.{u5} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u5} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u5} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u4} V _inst_2)] [_inst_4 : AddTorsor.{u4, u3} V P (AddCommGroup.toAddGroup.{u4} V _inst_2)] [_inst_5 : AddCommGroup.{u1} V'] [_inst_6 : Module.{u5, u1} R V' (StrictOrderedSemiring.toSemiring.{u5} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u5} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u5} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} V' _inst_5)] [_inst_7 : AddTorsor.{u1, u2} V' P' (AddCommGroup.toAddGroup.{u1} V' _inst_5)] {s : AffineSubspace.{u5, u4, u3} R V P (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} (f : AffineEquiv.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7), Iff (AffineSubspace.SOppSide.{u5, u1, u2} R V' ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineEquiv._hyg.1470 : P) => P') x) _inst_1 _inst_5 _inst_6 _inst_7 (AffineSubspace.map.{u5, u4, u3, u1, u2} R V P V' ((fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineEquiv._hyg.1470 : P) => P') x) (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 (AffineEquiv.toAffineMap.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 f) s) (FunLike.coe.{max (max (max (succ u3) (succ u2)) (succ u4)) (succ u1), succ u3, succ u2} (AffineEquiv.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineEquiv._hyg.1470 : P) => P') _x) (EmbeddingLike.toFunLike.{max (max (max (succ u3) (succ u2)) (succ u4)) (succ u1), succ u3, succ u2} (AffineEquiv.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P P' (EquivLike.toEmbeddingLike.{max (max (max (succ u3) (succ u2)) (succ u4)) (succ u1), succ u3, succ u2} (AffineEquiv.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P P' (AffineEquiv.equivLike.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7))) f x) (FunLike.coe.{max (max (max (succ u3) (succ u2)) (succ u4)) (succ u1), succ u3, succ u2} (AffineEquiv.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineEquiv._hyg.1470 : P) => P') _x) (EmbeddingLike.toFunLike.{max (max (max (succ u3) (succ u2)) (succ u4)) (succ u1), succ u3, succ u2} (AffineEquiv.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P P' (EquivLike.toEmbeddingLike.{max (max (max (succ u3) (succ u2)) (succ u4)) (succ u1), succ u3, succ u2} (AffineEquiv.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7) P P' (AffineEquiv.equivLike.{u5, u3, u2, u4, u1} R P P' V V' (StrictOrderedRing.toRing.{u5} R (StrictOrderedCommRing.toStrictOrderedRing.{u5} R _inst_1)) _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7))) f y)) (AffineSubspace.SOppSide.{u5, u4, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y)
+Case conversion may be inaccurate. Consider using '#align affine_equiv.s_opp_side_map_iff AffineEquiv.sOppSide_map_iffₓ'. -/
@[simp]
theorem AffineEquiv.sOppSide_map_iff {s : AffineSubspace R P} {x y : P} (f : P ≃ᵃ[R] P') :
(s.map ↑f).SOppSide (f x) (f y) ↔ s.SOppSide x y :=
@@ -149,67 +217,157 @@ theorem AffineEquiv.sOppSide_map_iff {s : AffineSubspace R P} {x y : P} (f : P
omit V'
+/- warning: affine_subspace.w_same_side.nonempty -> AffineSubspace.WSameSide.nonempty is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.WSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) -> (Set.Nonempty.{u3} P ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (Set.{u3} P) (HasLiftT.mk.{succ u3, succ u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (Set.{u3} P) (CoeTCₓ.coe.{succ u3, succ u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (Set.{u3} P) (SetLike.Set.hasCoeT.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)))) s))
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.WSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) -> (Set.Nonempty.{u1} P (SetLike.coe.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) s))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.w_same_side.nonempty AffineSubspace.WSameSide.nonemptyₓ'. -/
theorem WSameSide.nonempty {s : AffineSubspace R P} {x y : P} (h : s.WSameSide x y) :
(s : Set P).Nonempty :=
⟨h.some, h.choose_spec.some⟩
#align affine_subspace.w_same_side.nonempty AffineSubspace.WSameSide.nonempty
+/- warning: affine_subspace.s_same_side.nonempty -> AffineSubspace.SSameSide.nonempty is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.SSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) -> (Set.Nonempty.{u3} P ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (Set.{u3} P) (HasLiftT.mk.{succ u3, succ u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (Set.{u3} P) (CoeTCₓ.coe.{succ u3, succ u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (Set.{u3} P) (SetLike.Set.hasCoeT.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)))) s))
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.SSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) -> (Set.Nonempty.{u1} P (SetLike.coe.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) s))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.s_same_side.nonempty AffineSubspace.SSameSide.nonemptyₓ'. -/
theorem SSameSide.nonempty {s : AffineSubspace R P} {x y : P} (h : s.SSameSide x y) :
(s : Set P).Nonempty :=
⟨h.1.some, h.1.choose_spec.some⟩
#align affine_subspace.s_same_side.nonempty AffineSubspace.SSameSide.nonempty
+/- warning: affine_subspace.w_opp_side.nonempty -> AffineSubspace.WOppSide.nonempty is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.WOppSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) -> (Set.Nonempty.{u3} P ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (Set.{u3} P) (HasLiftT.mk.{succ u3, succ u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (Set.{u3} P) (CoeTCₓ.coe.{succ u3, succ u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (Set.{u3} P) (SetLike.Set.hasCoeT.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)))) s))
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.WOppSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) -> (Set.Nonempty.{u1} P (SetLike.coe.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) s))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.w_opp_side.nonempty AffineSubspace.WOppSide.nonemptyₓ'. -/
theorem WOppSide.nonempty {s : AffineSubspace R P} {x y : P} (h : s.WOppSide x y) :
(s : Set P).Nonempty :=
⟨h.some, h.choose_spec.some⟩
#align affine_subspace.w_opp_side.nonempty AffineSubspace.WOppSide.nonempty
+/- warning: affine_subspace.s_opp_side.nonempty -> AffineSubspace.SOppSide.nonempty is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.SOppSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) -> (Set.Nonempty.{u3} P ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (Set.{u3} P) (HasLiftT.mk.{succ u3, succ u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (Set.{u3} P) (CoeTCₓ.coe.{succ u3, succ u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (Set.{u3} P) (SetLike.Set.hasCoeT.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)))) s))
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.SOppSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) -> (Set.Nonempty.{u1} P (SetLike.coe.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) s))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.s_opp_side.nonempty AffineSubspace.SOppSide.nonemptyₓ'. -/
theorem SOppSide.nonempty {s : AffineSubspace R P} {x y : P} (h : s.SOppSide x y) :
(s : Set P).Nonempty :=
⟨h.1.some, h.1.choose_spec.some⟩
#align affine_subspace.s_opp_side.nonempty AffineSubspace.SOppSide.nonempty
+/- warning: affine_subspace.s_same_side.w_same_side -> AffineSubspace.SSameSide.wSameSide is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.SSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.WSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y)
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.SSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.WSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y)
+Case conversion may be inaccurate. Consider using '#align affine_subspace.s_same_side.w_same_side AffineSubspace.SSameSide.wSameSideₓ'. -/
theorem SSameSide.wSameSide {s : AffineSubspace R P} {x y : P} (h : s.SSameSide x y) :
s.WSameSide x y :=
h.1
#align affine_subspace.s_same_side.w_same_side AffineSubspace.SSameSide.wSameSide
+/- warning: affine_subspace.s_same_side.left_not_mem -> AffineSubspace.SSameSide.left_not_mem is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.SSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) -> (Not (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)) x s))
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.SSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) -> (Not (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4)) x s))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.s_same_side.left_not_mem AffineSubspace.SSameSide.left_not_memₓ'. -/
theorem SSameSide.left_not_mem {s : AffineSubspace R P} {x y : P} (h : s.SSameSide x y) : x ∉ s :=
h.2.1
#align affine_subspace.s_same_side.left_not_mem AffineSubspace.SSameSide.left_not_mem
+/- warning: affine_subspace.s_same_side.right_not_mem -> AffineSubspace.SSameSide.right_not_mem is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.SSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) -> (Not (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)) y s))
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.SSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) -> (Not (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4)) y s))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.s_same_side.right_not_mem AffineSubspace.SSameSide.right_not_memₓ'. -/
theorem SSameSide.right_not_mem {s : AffineSubspace R P} {x y : P} (h : s.SSameSide x y) : y ∉ s :=
h.2.2
#align affine_subspace.s_same_side.right_not_mem AffineSubspace.SSameSide.right_not_mem
+/- warning: affine_subspace.s_opp_side.w_opp_side -> AffineSubspace.SOppSide.wOppSide is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.SOppSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.WOppSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y)
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.SOppSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.WOppSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y)
+Case conversion may be inaccurate. Consider using '#align affine_subspace.s_opp_side.w_opp_side AffineSubspace.SOppSide.wOppSideₓ'. -/
theorem SOppSide.wOppSide {s : AffineSubspace R P} {x y : P} (h : s.SOppSide x y) :
s.WOppSide x y :=
h.1
#align affine_subspace.s_opp_side.w_opp_side AffineSubspace.SOppSide.wOppSide
+/- warning: affine_subspace.s_opp_side.left_not_mem -> AffineSubspace.SOppSide.left_not_mem is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.SOppSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) -> (Not (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)) x s))
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.SOppSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) -> (Not (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4)) x s))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.s_opp_side.left_not_mem AffineSubspace.SOppSide.left_not_memₓ'. -/
theorem SOppSide.left_not_mem {s : AffineSubspace R P} {x y : P} (h : s.SOppSide x y) : x ∉ s :=
h.2.1
#align affine_subspace.s_opp_side.left_not_mem AffineSubspace.SOppSide.left_not_mem
+/- warning: affine_subspace.s_opp_side.right_not_mem -> AffineSubspace.SOppSide.right_not_mem is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.SOppSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) -> (Not (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)) y s))
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.SOppSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) -> (Not (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4)) y s))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.s_opp_side.right_not_mem AffineSubspace.SOppSide.right_not_memₓ'. -/
theorem SOppSide.right_not_mem {s : AffineSubspace R P} {x y : P} (h : s.SOppSide x y) : y ∉ s :=
h.2.2
#align affine_subspace.s_opp_side.right_not_mem AffineSubspace.SOppSide.right_not_mem
+/- warning: affine_subspace.w_same_side_comm -> AffineSubspace.wSameSide_comm is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, Iff (AffineSubspace.WSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) (AffineSubspace.WSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s y x)
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, Iff (AffineSubspace.WSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) (AffineSubspace.WSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s y x)
+Case conversion may be inaccurate. Consider using '#align affine_subspace.w_same_side_comm AffineSubspace.wSameSide_commₓ'. -/
theorem wSameSide_comm {s : AffineSubspace R P} {x y : P} : s.WSameSide x y ↔ s.WSameSide y x :=
⟨fun ⟨p₁, hp₁, p₂, hp₂, h⟩ => ⟨p₂, hp₂, p₁, hp₁, h.symm⟩, fun ⟨p₁, hp₁, p₂, hp₂, h⟩ =>
⟨p₂, hp₂, p₁, hp₁, h.symm⟩⟩
#align affine_subspace.w_same_side_comm AffineSubspace.wSameSide_comm
+/- warning: affine_subspace.w_same_side.symm -> AffineSubspace.WSameSide.symm is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.WSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.WSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s y x)
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.WSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.WSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s y x)
+Case conversion may be inaccurate. Consider using '#align affine_subspace.w_same_side.symm AffineSubspace.WSameSide.symmₓ'. -/
alias w_same_side_comm ↔ w_same_side.symm _
#align affine_subspace.w_same_side.symm AffineSubspace.WSameSide.symm
+/- warning: affine_subspace.s_same_side_comm -> AffineSubspace.sSameSide_comm is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, Iff (AffineSubspace.SSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) (AffineSubspace.SSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s y x)
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, Iff (AffineSubspace.SSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) (AffineSubspace.SSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s y x)
+Case conversion may be inaccurate. Consider using '#align affine_subspace.s_same_side_comm AffineSubspace.sSameSide_commₓ'. -/
theorem sSameSide_comm {s : AffineSubspace R P} {x y : P} : s.SSameSide x y ↔ s.SSameSide y x := by
rw [s_same_side, s_same_side, w_same_side_comm, and_comm' (x ∉ s)]
#align affine_subspace.s_same_side_comm AffineSubspace.sSameSide_comm
+/- warning: affine_subspace.s_same_side.symm -> AffineSubspace.SSameSide.symm is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.SSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.SSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s y x)
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.SSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.SSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s y x)
+Case conversion may be inaccurate. Consider using '#align affine_subspace.s_same_side.symm AffineSubspace.SSameSide.symmₓ'. -/
alias s_same_side_comm ↔ s_same_side.symm _
#align affine_subspace.s_same_side.symm AffineSubspace.SSameSide.symm
+/- warning: affine_subspace.w_opp_side_comm -> AffineSubspace.wOppSide_comm is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, Iff (AffineSubspace.WOppSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) (AffineSubspace.WOppSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s y x)
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, Iff (AffineSubspace.WOppSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) (AffineSubspace.WOppSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s y x)
+Case conversion may be inaccurate. Consider using '#align affine_subspace.w_opp_side_comm AffineSubspace.wOppSide_commₓ'. -/
theorem wOppSide_comm {s : AffineSubspace R P} {x y : P} : s.WOppSide x y ↔ s.WOppSide y x :=
by
constructor
@@ -221,65 +379,149 @@ theorem wOppSide_comm {s : AffineSubspace R P} {x y : P} : s.WOppSide x y ↔ s.
rwa [SameRay.sameRay_comm, ← sameRay_neg_iff, neg_vsub_eq_vsub_rev, neg_vsub_eq_vsub_rev]
#align affine_subspace.w_opp_side_comm AffineSubspace.wOppSide_comm
+/- warning: affine_subspace.w_opp_side.symm -> AffineSubspace.WOppSide.symm is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.WOppSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.WOppSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s y x)
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.WOppSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.WOppSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s y x)
+Case conversion may be inaccurate. Consider using '#align affine_subspace.w_opp_side.symm AffineSubspace.WOppSide.symmₓ'. -/
alias w_opp_side_comm ↔ w_opp_side.symm _
#align affine_subspace.w_opp_side.symm AffineSubspace.WOppSide.symm
+/- warning: affine_subspace.s_opp_side_comm -> AffineSubspace.sOppSide_comm is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, Iff (AffineSubspace.SOppSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) (AffineSubspace.SOppSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s y x)
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, Iff (AffineSubspace.SOppSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) (AffineSubspace.SOppSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s y x)
+Case conversion may be inaccurate. Consider using '#align affine_subspace.s_opp_side_comm AffineSubspace.sOppSide_commₓ'. -/
theorem sOppSide_comm {s : AffineSubspace R P} {x y : P} : s.SOppSide x y ↔ s.SOppSide y x := by
rw [s_opp_side, s_opp_side, w_opp_side_comm, and_comm' (x ∉ s)]
#align affine_subspace.s_opp_side_comm AffineSubspace.sOppSide_comm
+/- warning: affine_subspace.s_opp_side.symm -> AffineSubspace.SOppSide.symm is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.SOppSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.SOppSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s y x)
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.SOppSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.SOppSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s y x)
+Case conversion may be inaccurate. Consider using '#align affine_subspace.s_opp_side.symm AffineSubspace.SOppSide.symmₓ'. -/
alias s_opp_side_comm ↔ s_opp_side.symm _
#align affine_subspace.s_opp_side.symm AffineSubspace.SOppSide.symm
+/- warning: affine_subspace.not_w_same_side_bot -> AffineSubspace.not_wSameSide_bot is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] (x : P) (y : P), Not (AffineSubspace.WSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 (Bot.bot.{u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (CompleteLattice.toHasBot.{u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (AffineSubspace.completeLattice.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4))) x y)
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] (x : P) (y : P), Not (AffineSubspace.WSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 (Bot.bot.{u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (CompleteLattice.toBot.{u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (AffineSubspace.instCompleteLatticeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4))) x y)
+Case conversion may be inaccurate. Consider using '#align affine_subspace.not_w_same_side_bot AffineSubspace.not_wSameSide_botₓ'. -/
theorem not_wSameSide_bot (x y : P) : ¬(⊥ : AffineSubspace R P).WSameSide x y := by
simp [w_same_side, not_mem_bot]
#align affine_subspace.not_w_same_side_bot AffineSubspace.not_wSameSide_bot
+/- warning: affine_subspace.not_s_same_side_bot -> AffineSubspace.not_sSameSide_bot is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] (x : P) (y : P), Not (AffineSubspace.SSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 (Bot.bot.{u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (CompleteLattice.toHasBot.{u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (AffineSubspace.completeLattice.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4))) x y)
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] (x : P) (y : P), Not (AffineSubspace.SSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 (Bot.bot.{u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (CompleteLattice.toBot.{u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (AffineSubspace.instCompleteLatticeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4))) x y)
+Case conversion may be inaccurate. Consider using '#align affine_subspace.not_s_same_side_bot AffineSubspace.not_sSameSide_botₓ'. -/
theorem not_sSameSide_bot (x y : P) : ¬(⊥ : AffineSubspace R P).SSameSide x y := fun h =>
not_wSameSide_bot x y h.WSameSide
#align affine_subspace.not_s_same_side_bot AffineSubspace.not_sSameSide_bot
+/- warning: affine_subspace.not_w_opp_side_bot -> AffineSubspace.not_wOppSide_bot is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] (x : P) (y : P), Not (AffineSubspace.WOppSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 (Bot.bot.{u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (CompleteLattice.toHasBot.{u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (AffineSubspace.completeLattice.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4))) x y)
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] (x : P) (y : P), Not (AffineSubspace.WOppSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 (Bot.bot.{u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (CompleteLattice.toBot.{u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (AffineSubspace.instCompleteLatticeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4))) x y)
+Case conversion may be inaccurate. Consider using '#align affine_subspace.not_w_opp_side_bot AffineSubspace.not_wOppSide_botₓ'. -/
theorem not_wOppSide_bot (x y : P) : ¬(⊥ : AffineSubspace R P).WOppSide x y := by
simp [w_opp_side, not_mem_bot]
#align affine_subspace.not_w_opp_side_bot AffineSubspace.not_wOppSide_bot
+/- warning: affine_subspace.not_s_opp_side_bot -> AffineSubspace.not_sOppSide_bot is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] (x : P) (y : P), Not (AffineSubspace.SOppSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 (Bot.bot.{u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (CompleteLattice.toHasBot.{u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (AffineSubspace.completeLattice.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4))) x y)
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] (x : P) (y : P), Not (AffineSubspace.SOppSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 (Bot.bot.{u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (CompleteLattice.toBot.{u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (AffineSubspace.instCompleteLatticeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4))) x y)
+Case conversion may be inaccurate. Consider using '#align affine_subspace.not_s_opp_side_bot AffineSubspace.not_sOppSide_botₓ'. -/
theorem not_sOppSide_bot (x y : P) : ¬(⊥ : AffineSubspace R P).SOppSide x y := fun h =>
not_wOppSide_bot x y h.WOppSide
#align affine_subspace.not_s_opp_side_bot AffineSubspace.not_sOppSide_bot
+/- warning: affine_subspace.w_same_side_self_iff -> AffineSubspace.wSameSide_self_iff is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P}, Iff (AffineSubspace.WSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x x) (Set.Nonempty.{u3} P ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (Set.{u3} P) (HasLiftT.mk.{succ u3, succ u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (Set.{u3} P) (CoeTCₓ.coe.{succ u3, succ u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (Set.{u3} P) (SetLike.Set.hasCoeT.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)))) s))
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P}, Iff (AffineSubspace.WSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x x) (Set.Nonempty.{u1} P (SetLike.coe.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) s))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.w_same_side_self_iff AffineSubspace.wSameSide_self_iffₓ'. -/
@[simp]
theorem wSameSide_self_iff {s : AffineSubspace R P} {x : P} :
s.WSameSide x x ↔ (s : Set P).Nonempty :=
⟨fun h => h.Nonempty, fun ⟨p, hp⟩ => ⟨p, hp, p, hp, SameRay.rfl⟩⟩
#align affine_subspace.w_same_side_self_iff AffineSubspace.wSameSide_self_iff
+/- warning: affine_subspace.s_same_side_self_iff -> AffineSubspace.sSameSide_self_iff is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P}, Iff (AffineSubspace.SSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x x) (And (Set.Nonempty.{u3} P ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (Set.{u3} P) (HasLiftT.mk.{succ u3, succ u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (Set.{u3} P) (CoeTCₓ.coe.{succ u3, succ u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (Set.{u3} P) (SetLike.Set.hasCoeT.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)))) s)) (Not (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)) x s)))
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P}, Iff (AffineSubspace.SSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x x) (And (Set.Nonempty.{u1} P (SetLike.coe.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) s)) (Not (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4)) x s)))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.s_same_side_self_iff AffineSubspace.sSameSide_self_iffₓ'. -/
theorem sSameSide_self_iff {s : AffineSubspace R P} {x : P} :
s.SSameSide x x ↔ (s : Set P).Nonempty ∧ x ∉ s :=
⟨fun ⟨h, hx, _⟩ => ⟨wSameSide_self_iff.1 h, hx⟩, fun ⟨h, hx⟩ => ⟨wSameSide_self_iff.2 h, hx, hx⟩⟩
#align affine_subspace.s_same_side_self_iff AffineSubspace.sSameSide_self_iff
+/- warning: affine_subspace.w_same_side_of_left_mem -> AffineSubspace.wSameSide_of_left_mem is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} (y : P), (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)) x s) -> (AffineSubspace.WSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y)
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} (y : P), (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4)) x s) -> (AffineSubspace.WSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y)
+Case conversion may be inaccurate. Consider using '#align affine_subspace.w_same_side_of_left_mem AffineSubspace.wSameSide_of_left_memₓ'. -/
theorem wSameSide_of_left_mem {s : AffineSubspace R P} {x : P} (y : P) (hx : x ∈ s) :
s.WSameSide x y := by
refine' ⟨x, hx, x, hx, _⟩
simp
#align affine_subspace.w_same_side_of_left_mem AffineSubspace.wSameSide_of_left_mem
+/- warning: affine_subspace.w_same_side_of_right_mem -> AffineSubspace.wSameSide_of_right_mem is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} (x : P) {y : P}, (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)) y s) -> (AffineSubspace.WSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y)
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} (x : P) {y : P}, (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4)) y s) -> (AffineSubspace.WSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y)
+Case conversion may be inaccurate. Consider using '#align affine_subspace.w_same_side_of_right_mem AffineSubspace.wSameSide_of_right_memₓ'. -/
theorem wSameSide_of_right_mem {s : AffineSubspace R P} (x : P) {y : P} (hy : y ∈ s) :
s.WSameSide x y :=
(wSameSide_of_left_mem x hy).symm
#align affine_subspace.w_same_side_of_right_mem AffineSubspace.wSameSide_of_right_mem
+/- warning: affine_subspace.w_opp_side_of_left_mem -> AffineSubspace.wOppSide_of_left_mem is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} (y : P), (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)) x s) -> (AffineSubspace.WOppSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y)
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} (y : P), (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4)) x s) -> (AffineSubspace.WOppSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y)
+Case conversion may be inaccurate. Consider using '#align affine_subspace.w_opp_side_of_left_mem AffineSubspace.wOppSide_of_left_memₓ'. -/
theorem wOppSide_of_left_mem {s : AffineSubspace R P} {x : P} (y : P) (hx : x ∈ s) :
s.WOppSide x y := by
refine' ⟨x, hx, x, hx, _⟩
simp
#align affine_subspace.w_opp_side_of_left_mem AffineSubspace.wOppSide_of_left_mem
+/- warning: affine_subspace.w_opp_side_of_right_mem -> AffineSubspace.wOppSide_of_right_mem is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} (x : P) {y : P}, (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)) y s) -> (AffineSubspace.WOppSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y)
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} (x : P) {y : P}, (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4)) y s) -> (AffineSubspace.WOppSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y)
+Case conversion may be inaccurate. Consider using '#align affine_subspace.w_opp_side_of_right_mem AffineSubspace.wOppSide_of_right_memₓ'. -/
theorem wOppSide_of_right_mem {s : AffineSubspace R P} (x : P) {y : P} (hy : y ∈ s) :
s.WOppSide x y :=
(wOppSide_of_left_mem x hy).symm
#align affine_subspace.w_opp_side_of_right_mem AffineSubspace.wOppSide_of_right_mem
+/- warning: affine_subspace.w_same_side_vadd_left_iff -> AffineSubspace.wSameSide_vadd_left_iff is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {v : V}, (Membership.Mem.{u2, u2} V (Submodule.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3) (SetLike.hasMem.{u2, u2} (Submodule.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3) V (Submodule.setLike.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3)) v (AffineSubspace.direction.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s)) -> (Iff (AffineSubspace.WSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s (VAdd.vadd.{u2, u3} V P (AddAction.toHasVadd.{u2, u3} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4)) v x) y) (AffineSubspace.WSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y))
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {v : V}, (Membership.mem.{u2, u2} V (Submodule.{u3, u2} R V (Ring.toSemiring.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3) (SetLike.instMembership.{u2, u2} (Submodule.{u3, u2} R V (Ring.toSemiring.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3) V (Submodule.setLike.{u3, u2} R V (Ring.toSemiring.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3)) v (AffineSubspace.direction.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s)) -> (Iff (AffineSubspace.WSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s (HVAdd.hVAdd.{u2, u1, u1} V P P (instHVAdd.{u2, u1} V P (AddAction.toVAdd.{u2, u1} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4))) v x) y) (AffineSubspace.WSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.w_same_side_vadd_left_iff AffineSubspace.wSameSide_vadd_left_iffₓ'. -/
theorem wSameSide_vadd_left_iff {s : AffineSubspace R P} {x y : P} {v : V} (hv : v ∈ s.direction) :
s.WSameSide (v +ᵥ x) y ↔ s.WSameSide x y :=
by
@@ -293,21 +535,45 @@ theorem wSameSide_vadd_left_iff {s : AffineSubspace R P} {x y : P} {v : V} (hv :
rwa [vadd_vsub_vadd_cancel_left]
#align affine_subspace.w_same_side_vadd_left_iff AffineSubspace.wSameSide_vadd_left_iff
+/- warning: affine_subspace.w_same_side_vadd_right_iff -> AffineSubspace.wSameSide_vadd_right_iff is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {v : V}, (Membership.Mem.{u2, u2} V (Submodule.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3) (SetLike.hasMem.{u2, u2} (Submodule.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3) V (Submodule.setLike.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3)) v (AffineSubspace.direction.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s)) -> (Iff (AffineSubspace.WSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x (VAdd.vadd.{u2, u3} V P (AddAction.toHasVadd.{u2, u3} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4)) v y)) (AffineSubspace.WSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y))
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {v : V}, (Membership.mem.{u2, u2} V (Submodule.{u3, u2} R V (Ring.toSemiring.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3) (SetLike.instMembership.{u2, u2} (Submodule.{u3, u2} R V (Ring.toSemiring.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3) V (Submodule.setLike.{u3, u2} R V (Ring.toSemiring.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3)) v (AffineSubspace.direction.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s)) -> (Iff (AffineSubspace.WSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x (HVAdd.hVAdd.{u2, u1, u1} V P P (instHVAdd.{u2, u1} V P (AddAction.toVAdd.{u2, u1} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4))) v y)) (AffineSubspace.WSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.w_same_side_vadd_right_iff AffineSubspace.wSameSide_vadd_right_iffₓ'. -/
theorem wSameSide_vadd_right_iff {s : AffineSubspace R P} {x y : P} {v : V} (hv : v ∈ s.direction) :
s.WSameSide x (v +ᵥ y) ↔ s.WSameSide x y := by
rw [w_same_side_comm, w_same_side_vadd_left_iff hv, w_same_side_comm]
#align affine_subspace.w_same_side_vadd_right_iff AffineSubspace.wSameSide_vadd_right_iff
+/- warning: affine_subspace.s_same_side_vadd_left_iff -> AffineSubspace.sSameSide_vadd_left_iff is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {v : V}, (Membership.Mem.{u2, u2} V (Submodule.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3) (SetLike.hasMem.{u2, u2} (Submodule.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3) V (Submodule.setLike.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3)) v (AffineSubspace.direction.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s)) -> (Iff (AffineSubspace.SSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s (VAdd.vadd.{u2, u3} V P (AddAction.toHasVadd.{u2, u3} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4)) v x) y) (AffineSubspace.SSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y))
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {v : V}, (Membership.mem.{u2, u2} V (Submodule.{u3, u2} R V (Ring.toSemiring.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3) (SetLike.instMembership.{u2, u2} (Submodule.{u3, u2} R V (Ring.toSemiring.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3) V (Submodule.setLike.{u3, u2} R V (Ring.toSemiring.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3)) v (AffineSubspace.direction.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s)) -> (Iff (AffineSubspace.SSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s (HVAdd.hVAdd.{u2, u1, u1} V P P (instHVAdd.{u2, u1} V P (AddAction.toVAdd.{u2, u1} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4))) v x) y) (AffineSubspace.SSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.s_same_side_vadd_left_iff AffineSubspace.sSameSide_vadd_left_iffₓ'. -/
theorem sSameSide_vadd_left_iff {s : AffineSubspace R P} {x y : P} {v : V} (hv : v ∈ s.direction) :
s.SSameSide (v +ᵥ x) y ↔ s.SSameSide x y := by
rw [s_same_side, s_same_side, w_same_side_vadd_left_iff hv, vadd_mem_iff_mem_of_mem_direction hv]
#align affine_subspace.s_same_side_vadd_left_iff AffineSubspace.sSameSide_vadd_left_iff
+/- warning: affine_subspace.s_same_side_vadd_right_iff -> AffineSubspace.sSameSide_vadd_right_iff is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {v : V}, (Membership.Mem.{u2, u2} V (Submodule.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3) (SetLike.hasMem.{u2, u2} (Submodule.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3) V (Submodule.setLike.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3)) v (AffineSubspace.direction.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s)) -> (Iff (AffineSubspace.SSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x (VAdd.vadd.{u2, u3} V P (AddAction.toHasVadd.{u2, u3} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4)) v y)) (AffineSubspace.SSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y))
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {v : V}, (Membership.mem.{u2, u2} V (Submodule.{u3, u2} R V (Ring.toSemiring.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3) (SetLike.instMembership.{u2, u2} (Submodule.{u3, u2} R V (Ring.toSemiring.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3) V (Submodule.setLike.{u3, u2} R V (Ring.toSemiring.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3)) v (AffineSubspace.direction.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s)) -> (Iff (AffineSubspace.SSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x (HVAdd.hVAdd.{u2, u1, u1} V P P (instHVAdd.{u2, u1} V P (AddAction.toVAdd.{u2, u1} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4))) v y)) (AffineSubspace.SSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.s_same_side_vadd_right_iff AffineSubspace.sSameSide_vadd_right_iffₓ'. -/
theorem sSameSide_vadd_right_iff {s : AffineSubspace R P} {x y : P} {v : V} (hv : v ∈ s.direction) :
s.SSameSide x (v +ᵥ y) ↔ s.SSameSide x y := by
rw [s_same_side_comm, s_same_side_vadd_left_iff hv, s_same_side_comm]
#align affine_subspace.s_same_side_vadd_right_iff AffineSubspace.sSameSide_vadd_right_iff
+/- warning: affine_subspace.w_opp_side_vadd_left_iff -> AffineSubspace.wOppSide_vadd_left_iff is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {v : V}, (Membership.Mem.{u2, u2} V (Submodule.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3) (SetLike.hasMem.{u2, u2} (Submodule.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3) V (Submodule.setLike.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3)) v (AffineSubspace.direction.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s)) -> (Iff (AffineSubspace.WOppSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s (VAdd.vadd.{u2, u3} V P (AddAction.toHasVadd.{u2, u3} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4)) v x) y) (AffineSubspace.WOppSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y))
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {v : V}, (Membership.mem.{u2, u2} V (Submodule.{u3, u2} R V (Ring.toSemiring.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3) (SetLike.instMembership.{u2, u2} (Submodule.{u3, u2} R V (Ring.toSemiring.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3) V (Submodule.setLike.{u3, u2} R V (Ring.toSemiring.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3)) v (AffineSubspace.direction.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s)) -> (Iff (AffineSubspace.WOppSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s (HVAdd.hVAdd.{u2, u1, u1} V P P (instHVAdd.{u2, u1} V P (AddAction.toVAdd.{u2, u1} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4))) v x) y) (AffineSubspace.WOppSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.w_opp_side_vadd_left_iff AffineSubspace.wOppSide_vadd_left_iffₓ'. -/
theorem wOppSide_vadd_left_iff {s : AffineSubspace R P} {x y : P} {v : V} (hv : v ∈ s.direction) :
s.WOppSide (v +ᵥ x) y ↔ s.WOppSide x y :=
by
@@ -321,21 +587,45 @@ theorem wOppSide_vadd_left_iff {s : AffineSubspace R P} {x y : P} {v : V} (hv :
rwa [vadd_vsub_vadd_cancel_left]
#align affine_subspace.w_opp_side_vadd_left_iff AffineSubspace.wOppSide_vadd_left_iff
+/- warning: affine_subspace.w_opp_side_vadd_right_iff -> AffineSubspace.wOppSide_vadd_right_iff is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {v : V}, (Membership.Mem.{u2, u2} V (Submodule.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3) (SetLike.hasMem.{u2, u2} (Submodule.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3) V (Submodule.setLike.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3)) v (AffineSubspace.direction.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s)) -> (Iff (AffineSubspace.WOppSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x (VAdd.vadd.{u2, u3} V P (AddAction.toHasVadd.{u2, u3} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4)) v y)) (AffineSubspace.WOppSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y))
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {v : V}, (Membership.mem.{u2, u2} V (Submodule.{u3, u2} R V (Ring.toSemiring.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3) (SetLike.instMembership.{u2, u2} (Submodule.{u3, u2} R V (Ring.toSemiring.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3) V (Submodule.setLike.{u3, u2} R V (Ring.toSemiring.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3)) v (AffineSubspace.direction.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s)) -> (Iff (AffineSubspace.WOppSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x (HVAdd.hVAdd.{u2, u1, u1} V P P (instHVAdd.{u2, u1} V P (AddAction.toVAdd.{u2, u1} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4))) v y)) (AffineSubspace.WOppSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.w_opp_side_vadd_right_iff AffineSubspace.wOppSide_vadd_right_iffₓ'. -/
theorem wOppSide_vadd_right_iff {s : AffineSubspace R P} {x y : P} {v : V} (hv : v ∈ s.direction) :
s.WOppSide x (v +ᵥ y) ↔ s.WOppSide x y := by
rw [w_opp_side_comm, w_opp_side_vadd_left_iff hv, w_opp_side_comm]
#align affine_subspace.w_opp_side_vadd_right_iff AffineSubspace.wOppSide_vadd_right_iff
+/- warning: affine_subspace.s_opp_side_vadd_left_iff -> AffineSubspace.sOppSide_vadd_left_iff is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {v : V}, (Membership.Mem.{u2, u2} V (Submodule.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3) (SetLike.hasMem.{u2, u2} (Submodule.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3) V (Submodule.setLike.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3)) v (AffineSubspace.direction.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s)) -> (Iff (AffineSubspace.SOppSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s (VAdd.vadd.{u2, u3} V P (AddAction.toHasVadd.{u2, u3} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4)) v x) y) (AffineSubspace.SOppSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y))
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {v : V}, (Membership.mem.{u2, u2} V (Submodule.{u3, u2} R V (Ring.toSemiring.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3) (SetLike.instMembership.{u2, u2} (Submodule.{u3, u2} R V (Ring.toSemiring.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3) V (Submodule.setLike.{u3, u2} R V (Ring.toSemiring.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3)) v (AffineSubspace.direction.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s)) -> (Iff (AffineSubspace.SOppSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s (HVAdd.hVAdd.{u2, u1, u1} V P P (instHVAdd.{u2, u1} V P (AddAction.toVAdd.{u2, u1} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4))) v x) y) (AffineSubspace.SOppSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.s_opp_side_vadd_left_iff AffineSubspace.sOppSide_vadd_left_iffₓ'. -/
theorem sOppSide_vadd_left_iff {s : AffineSubspace R P} {x y : P} {v : V} (hv : v ∈ s.direction) :
s.SOppSide (v +ᵥ x) y ↔ s.SOppSide x y := by
rw [s_opp_side, s_opp_side, w_opp_side_vadd_left_iff hv, vadd_mem_iff_mem_of_mem_direction hv]
#align affine_subspace.s_opp_side_vadd_left_iff AffineSubspace.sOppSide_vadd_left_iff
+/- warning: affine_subspace.s_opp_side_vadd_right_iff -> AffineSubspace.sOppSide_vadd_right_iff is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {v : V}, (Membership.Mem.{u2, u2} V (Submodule.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3) (SetLike.hasMem.{u2, u2} (Submodule.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3) V (Submodule.setLike.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3)) v (AffineSubspace.direction.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s)) -> (Iff (AffineSubspace.SOppSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x (VAdd.vadd.{u2, u3} V P (AddAction.toHasVadd.{u2, u3} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4)) v y)) (AffineSubspace.SOppSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y))
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {v : V}, (Membership.mem.{u2, u2} V (Submodule.{u3, u2} R V (Ring.toSemiring.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3) (SetLike.instMembership.{u2, u2} (Submodule.{u3, u2} R V (Ring.toSemiring.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3) V (Submodule.setLike.{u3, u2} R V (Ring.toSemiring.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3)) v (AffineSubspace.direction.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s)) -> (Iff (AffineSubspace.SOppSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x (HVAdd.hVAdd.{u2, u1, u1} V P P (instHVAdd.{u2, u1} V P (AddAction.toVAdd.{u2, u1} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4))) v y)) (AffineSubspace.SOppSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.s_opp_side_vadd_right_iff AffineSubspace.sOppSide_vadd_right_iffₓ'. -/
theorem sOppSide_vadd_right_iff {s : AffineSubspace R P} {x y : P} {v : V} (hv : v ∈ s.direction) :
s.SOppSide x (v +ᵥ y) ↔ s.SOppSide x y := by
rw [s_opp_side_comm, s_opp_side_vadd_left_iff hv, s_opp_side_comm]
#align affine_subspace.s_opp_side_vadd_right_iff AffineSubspace.sOppSide_vadd_right_iff
+/- warning: affine_subspace.w_same_side_smul_vsub_vadd_left -> AffineSubspace.wSameSide_smul_vsub_vadd_left is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {p₁ : P} {p₂ : P} (x : P), (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)) p₁ s) -> (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)) p₂ s) -> (forall {t : R}, (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{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 (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))))))))) t) -> (AffineSubspace.WSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s (VAdd.vadd.{u2, u3} V P (AddAction.toHasVadd.{u2, u3} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4)) (SMul.smul.{u1, u2} R V (SMulZeroClass.toHasSmul.{u1, u2} R V (AddZeroClass.toHasZero.{u2} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R V (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} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R V (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u2} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3)))) t (VSub.vsub.{u2, u3} V P (AddTorsor.toHasVsub.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p₁)) p₂) x))
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {p₁ : P} {p₂ : P} (x : P), (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4)) p₁ s) -> (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4)) p₂ s) -> (forall {t : R}, (LE.le.{u3} R (Preorder.toLE.{u3} R (PartialOrder.toPreorder.{u3} R (StrictOrderedRing.toPartialOrder.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)))) (OfNat.ofNat.{u3} R 0 (Zero.toOfNat0.{u3} R (CommMonoidWithZero.toZero.{u3} R (CommSemiring.toCommMonoidWithZero.{u3} R (StrictOrderedCommSemiring.toCommSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1)))))) t) -> (AffineSubspace.WSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s (HVAdd.hVAdd.{u2, u1, u1} V P P (instHVAdd.{u2, u1} V P (AddAction.toVAdd.{u2, u1} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4))) (HSMul.hSMul.{u3, u2, u2} R V V (instHSMul.{u3, u2} R V (SMulZeroClass.toSMul.{u3, u2} R V (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (SMulWithZero.toSMulZeroClass.{u3, u2} R V (CommMonoidWithZero.toZero.{u3} R (CommSemiring.toCommMonoidWithZero.{u3} R (StrictOrderedCommSemiring.toCommSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1)))) (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (MulActionWithZero.toSMulWithZero.{u3, u2} R V (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1)))) (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (Module.toMulActionWithZero.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3))))) t (VSub.vsub.{u2, u1} V P (AddTorsor.toVSub.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p₁)) p₂) x))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.w_same_side_smul_vsub_vadd_left AffineSubspace.wSameSide_smul_vsub_vadd_leftₓ'. -/
theorem wSameSide_smul_vsub_vadd_left {s : AffineSubspace R P} {p₁ p₂ : P} (x : P) (hp₁ : p₁ ∈ s)
(hp₂ : p₂ ∈ s) {t : R} (ht : 0 ≤ t) : s.WSameSide (t • (x -ᵥ p₁) +ᵥ p₂) x :=
by
@@ -344,21 +634,45 @@ theorem wSameSide_smul_vsub_vadd_left {s : AffineSubspace R P} {p₁ p₂ : P} (
exact SameRay.sameRay_nonneg_smul_left _ ht
#align affine_subspace.w_same_side_smul_vsub_vadd_left AffineSubspace.wSameSide_smul_vsub_vadd_left
+/- warning: affine_subspace.w_same_side_smul_vsub_vadd_right -> AffineSubspace.wSameSide_smul_vsub_vadd_right is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {p₁ : P} {p₂ : P} (x : P), (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)) p₁ s) -> (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)) p₂ s) -> (forall {t : R}, (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{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 (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))))))))) t) -> (AffineSubspace.WSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x (VAdd.vadd.{u2, u3} V P (AddAction.toHasVadd.{u2, u3} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4)) (SMul.smul.{u1, u2} R V (SMulZeroClass.toHasSmul.{u1, u2} R V (AddZeroClass.toHasZero.{u2} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R V (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} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R V (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u2} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3)))) t (VSub.vsub.{u2, u3} V P (AddTorsor.toHasVsub.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p₁)) p₂)))
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {p₁ : P} {p₂ : P} (x : P), (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4)) p₁ s) -> (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4)) p₂ s) -> (forall {t : R}, (LE.le.{u3} R (Preorder.toLE.{u3} R (PartialOrder.toPreorder.{u3} R (StrictOrderedRing.toPartialOrder.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)))) (OfNat.ofNat.{u3} R 0 (Zero.toOfNat0.{u3} R (CommMonoidWithZero.toZero.{u3} R (CommSemiring.toCommMonoidWithZero.{u3} R (StrictOrderedCommSemiring.toCommSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1)))))) t) -> (AffineSubspace.WSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x (HVAdd.hVAdd.{u2, u1, u1} V P P (instHVAdd.{u2, u1} V P (AddAction.toVAdd.{u2, u1} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4))) (HSMul.hSMul.{u3, u2, u2} R V V (instHSMul.{u3, u2} R V (SMulZeroClass.toSMul.{u3, u2} R V (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (SMulWithZero.toSMulZeroClass.{u3, u2} R V (CommMonoidWithZero.toZero.{u3} R (CommSemiring.toCommMonoidWithZero.{u3} R (StrictOrderedCommSemiring.toCommSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1)))) (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (MulActionWithZero.toSMulWithZero.{u3, u2} R V (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1)))) (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (Module.toMulActionWithZero.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3))))) t (VSub.vsub.{u2, u1} V P (AddTorsor.toVSub.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p₁)) p₂)))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.w_same_side_smul_vsub_vadd_right AffineSubspace.wSameSide_smul_vsub_vadd_rightₓ'. -/
theorem wSameSide_smul_vsub_vadd_right {s : AffineSubspace R P} {p₁ p₂ : P} (x : P) (hp₁ : p₁ ∈ s)
(hp₂ : p₂ ∈ s) {t : R} (ht : 0 ≤ t) : s.WSameSide x (t • (x -ᵥ p₁) +ᵥ p₂) :=
(wSameSide_smul_vsub_vadd_left x hp₁ hp₂ ht).symm
#align affine_subspace.w_same_side_smul_vsub_vadd_right AffineSubspace.wSameSide_smul_vsub_vadd_right
+/- warning: affine_subspace.w_same_side_line_map_left -> AffineSubspace.wSameSide_lineMap_left is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} (y : P), (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)) x s) -> (forall {t : R}, (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{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 (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))))))))) t) -> (AffineSubspace.WSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s (coeFn.{max (succ u1) (succ u2) (succ u3), max (succ u1) (succ u3)} (AffineMap.{u1, u1, u1, u2, u3} R R R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (addGroupIsAddTorsor.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))))) _inst_2 _inst_3 _inst_4) (fun (_x : AffineMap.{u1, u1, u1, u2, u3} R R R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (addGroupIsAddTorsor.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))))) _inst_2 _inst_3 _inst_4) => R -> P) (AffineMap.hasCoeToFun.{u1, u1, u1, u2, u3} R R R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (addGroupIsAddTorsor.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))))) _inst_2 _inst_3 _inst_4) (AffineMap.lineMap.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 x y) t) y))
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} (y : P), (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4)) x s) -> (forall {t : R}, (LE.le.{u3} R (Preorder.toLE.{u3} R (PartialOrder.toPreorder.{u3} R (StrictOrderedRing.toPartialOrder.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)))) (OfNat.ofNat.{u3} R 0 (Zero.toOfNat0.{u3} R (CommMonoidWithZero.toZero.{u3} R (CommSemiring.toCommMonoidWithZero.{u3} R (StrictOrderedCommSemiring.toCommSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1)))))) t) -> (AffineSubspace.WSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), succ u3, succ u1} (AffineMap.{u3, u3, u3, u2, u1} R R R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) (Ring.toAddCommGroup.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)))) (addGroupIsAddTorsor.{u3} R (AddGroupWithOne.toAddGroup.{u3} R (Ring.toAddGroupWithOne.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))))) _inst_2 _inst_3 _inst_4) R (fun (_x : R) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : R) => P) _x) (AffineMap.funLike.{u3, u3, u3, u2, u1} R R R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) (Ring.toAddCommGroup.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)))) (addGroupIsAddTorsor.{u3} R (AddGroupWithOne.toAddGroup.{u3} R (Ring.toAddGroupWithOne.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))))) _inst_2 _inst_3 _inst_4) (AffineMap.lineMap.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 x y) t) y))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.w_same_side_line_map_left AffineSubspace.wSameSide_lineMap_leftₓ'. -/
theorem wSameSide_lineMap_left {s : AffineSubspace R P} {x : P} (y : P) (h : x ∈ s) {t : R}
(ht : 0 ≤ t) : s.WSameSide (lineMap x y t) y :=
wSameSide_smul_vsub_vadd_left y h h ht
#align affine_subspace.w_same_side_line_map_left AffineSubspace.wSameSide_lineMap_left
+/- warning: affine_subspace.w_same_side_line_map_right -> AffineSubspace.wSameSide_lineMap_right is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} (y : P), (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)) x s) -> (forall {t : R}, (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{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 (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))))))))) t) -> (AffineSubspace.WSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s y (coeFn.{max (succ u1) (succ u2) (succ u3), max (succ u1) (succ u3)} (AffineMap.{u1, u1, u1, u2, u3} R R R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (addGroupIsAddTorsor.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))))) _inst_2 _inst_3 _inst_4) (fun (_x : AffineMap.{u1, u1, u1, u2, u3} R R R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (addGroupIsAddTorsor.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))))) _inst_2 _inst_3 _inst_4) => R -> P) (AffineMap.hasCoeToFun.{u1, u1, u1, u2, u3} R R R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (addGroupIsAddTorsor.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))))) _inst_2 _inst_3 _inst_4) (AffineMap.lineMap.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 x y) t)))
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} (y : P), (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4)) x s) -> (forall {t : R}, (LE.le.{u3} R (Preorder.toLE.{u3} R (PartialOrder.toPreorder.{u3} R (StrictOrderedRing.toPartialOrder.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)))) (OfNat.ofNat.{u3} R 0 (Zero.toOfNat0.{u3} R (CommMonoidWithZero.toZero.{u3} R (CommSemiring.toCommMonoidWithZero.{u3} R (StrictOrderedCommSemiring.toCommSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1)))))) t) -> (AffineSubspace.WSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s y (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), succ u3, succ u1} (AffineMap.{u3, u3, u3, u2, u1} R R R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) (Ring.toAddCommGroup.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)))) (addGroupIsAddTorsor.{u3} R (AddGroupWithOne.toAddGroup.{u3} R (Ring.toAddGroupWithOne.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))))) _inst_2 _inst_3 _inst_4) R (fun (_x : R) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : R) => P) _x) (AffineMap.funLike.{u3, u3, u3, u2, u1} R R R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) (Ring.toAddCommGroup.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)))) (addGroupIsAddTorsor.{u3} R (AddGroupWithOne.toAddGroup.{u3} R (Ring.toAddGroupWithOne.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))))) _inst_2 _inst_3 _inst_4) (AffineMap.lineMap.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 x y) t)))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.w_same_side_line_map_right AffineSubspace.wSameSide_lineMap_rightₓ'. -/
theorem wSameSide_lineMap_right {s : AffineSubspace R P} {x : P} (y : P) (h : x ∈ s) {t : R}
(ht : 0 ≤ t) : s.WSameSide y (lineMap x y t) :=
(wSameSide_lineMap_left y h ht).symm
#align affine_subspace.w_same_side_line_map_right AffineSubspace.wSameSide_lineMap_right
+/- warning: affine_subspace.w_opp_side_smul_vsub_vadd_left -> AffineSubspace.wOppSide_smul_vsub_vadd_left is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {p₁ : P} {p₂ : P} (x : P), (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)) p₁ s) -> (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)) p₂ s) -> (forall {t : R}, (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))) t (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))))))))))) -> (AffineSubspace.WOppSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s (VAdd.vadd.{u2, u3} V P (AddAction.toHasVadd.{u2, u3} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4)) (SMul.smul.{u1, u2} R V (SMulZeroClass.toHasSmul.{u1, u2} R V (AddZeroClass.toHasZero.{u2} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R V (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} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R V (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u2} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3)))) t (VSub.vsub.{u2, u3} V P (AddTorsor.toHasVsub.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p₁)) p₂) x))
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {p₁ : P} {p₂ : P} (x : P), (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4)) p₁ s) -> (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4)) p₂ s) -> (forall {t : R}, (LE.le.{u3} R (Preorder.toLE.{u3} R (PartialOrder.toPreorder.{u3} R (StrictOrderedRing.toPartialOrder.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)))) t (OfNat.ofNat.{u3} R 0 (Zero.toOfNat0.{u3} R (CommMonoidWithZero.toZero.{u3} R (CommSemiring.toCommMonoidWithZero.{u3} R (StrictOrderedCommSemiring.toCommSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))))))) -> (AffineSubspace.WOppSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s (HVAdd.hVAdd.{u2, u1, u1} V P P (instHVAdd.{u2, u1} V P (AddAction.toVAdd.{u2, u1} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4))) (HSMul.hSMul.{u3, u2, u2} R V V (instHSMul.{u3, u2} R V (SMulZeroClass.toSMul.{u3, u2} R V (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (SMulWithZero.toSMulZeroClass.{u3, u2} R V (CommMonoidWithZero.toZero.{u3} R (CommSemiring.toCommMonoidWithZero.{u3} R (StrictOrderedCommSemiring.toCommSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1)))) (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (MulActionWithZero.toSMulWithZero.{u3, u2} R V (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1)))) (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (Module.toMulActionWithZero.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3))))) t (VSub.vsub.{u2, u1} V P (AddTorsor.toVSub.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p₁)) p₂) x))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.w_opp_side_smul_vsub_vadd_left AffineSubspace.wOppSide_smul_vsub_vadd_leftₓ'. -/
theorem wOppSide_smul_vsub_vadd_left {s : AffineSubspace R P} {p₁ p₂ : P} (x : P) (hp₁ : p₁ ∈ s)
(hp₂ : p₂ ∈ s) {t : R} (ht : t ≤ 0) : s.WOppSide (t • (x -ᵥ p₁) +ᵥ p₂) x :=
by
@@ -367,43 +681,91 @@ theorem wOppSide_smul_vsub_vadd_left {s : AffineSubspace R P} {p₁ p₂ : P} (x
exact SameRay.sameRay_nonneg_smul_left _ (neg_nonneg.2 ht)
#align affine_subspace.w_opp_side_smul_vsub_vadd_left AffineSubspace.wOppSide_smul_vsub_vadd_left
+/- warning: affine_subspace.w_opp_side_smul_vsub_vadd_right -> AffineSubspace.wOppSide_smul_vsub_vadd_right is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {p₁ : P} {p₂ : P} (x : P), (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)) p₁ s) -> (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)) p₂ s) -> (forall {t : R}, (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))) t (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))))))))))) -> (AffineSubspace.WOppSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x (VAdd.vadd.{u2, u3} V P (AddAction.toHasVadd.{u2, u3} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4)) (SMul.smul.{u1, u2} R V (SMulZeroClass.toHasSmul.{u1, u2} R V (AddZeroClass.toHasZero.{u2} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R V (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} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R V (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u2} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3)))) t (VSub.vsub.{u2, u3} V P (AddTorsor.toHasVsub.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p₁)) p₂)))
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {p₁ : P} {p₂ : P} (x : P), (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4)) p₁ s) -> (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4)) p₂ s) -> (forall {t : R}, (LE.le.{u3} R (Preorder.toLE.{u3} R (PartialOrder.toPreorder.{u3} R (StrictOrderedRing.toPartialOrder.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)))) t (OfNat.ofNat.{u3} R 0 (Zero.toOfNat0.{u3} R (CommMonoidWithZero.toZero.{u3} R (CommSemiring.toCommMonoidWithZero.{u3} R (StrictOrderedCommSemiring.toCommSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))))))) -> (AffineSubspace.WOppSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x (HVAdd.hVAdd.{u2, u1, u1} V P P (instHVAdd.{u2, u1} V P (AddAction.toVAdd.{u2, u1} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4))) (HSMul.hSMul.{u3, u2, u2} R V V (instHSMul.{u3, u2} R V (SMulZeroClass.toSMul.{u3, u2} R V (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (SMulWithZero.toSMulZeroClass.{u3, u2} R V (CommMonoidWithZero.toZero.{u3} R (CommSemiring.toCommMonoidWithZero.{u3} R (StrictOrderedCommSemiring.toCommSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1)))) (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (MulActionWithZero.toSMulWithZero.{u3, u2} R V (Semiring.toMonoidWithZero.{u3} R (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1)))) (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (Module.toMulActionWithZero.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3))))) t (VSub.vsub.{u2, u1} V P (AddTorsor.toVSub.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p₁)) p₂)))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.w_opp_side_smul_vsub_vadd_right AffineSubspace.wOppSide_smul_vsub_vadd_rightₓ'. -/
theorem wOppSide_smul_vsub_vadd_right {s : AffineSubspace R P} {p₁ p₂ : P} (x : P) (hp₁ : p₁ ∈ s)
(hp₂ : p₂ ∈ s) {t : R} (ht : t ≤ 0) : s.WOppSide x (t • (x -ᵥ p₁) +ᵥ p₂) :=
(wOppSide_smul_vsub_vadd_left x hp₁ hp₂ ht).symm
#align affine_subspace.w_opp_side_smul_vsub_vadd_right AffineSubspace.wOppSide_smul_vsub_vadd_right
+/- warning: affine_subspace.w_opp_side_line_map_left -> AffineSubspace.wOppSide_lineMap_left is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} (y : P), (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)) x s) -> (forall {t : R}, (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))) t (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))))))))))) -> (AffineSubspace.WOppSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s (coeFn.{max (succ u1) (succ u2) (succ u3), max (succ u1) (succ u3)} (AffineMap.{u1, u1, u1, u2, u3} R R R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (addGroupIsAddTorsor.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))))) _inst_2 _inst_3 _inst_4) (fun (_x : AffineMap.{u1, u1, u1, u2, u3} R R R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (addGroupIsAddTorsor.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))))) _inst_2 _inst_3 _inst_4) => R -> P) (AffineMap.hasCoeToFun.{u1, u1, u1, u2, u3} R R R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (addGroupIsAddTorsor.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))))) _inst_2 _inst_3 _inst_4) (AffineMap.lineMap.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 x y) t) y))
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} (y : P), (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4)) x s) -> (forall {t : R}, (LE.le.{u3} R (Preorder.toLE.{u3} R (PartialOrder.toPreorder.{u3} R (StrictOrderedRing.toPartialOrder.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)))) t (OfNat.ofNat.{u3} R 0 (Zero.toOfNat0.{u3} R (CommMonoidWithZero.toZero.{u3} R (CommSemiring.toCommMonoidWithZero.{u3} R (StrictOrderedCommSemiring.toCommSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))))))) -> (AffineSubspace.WOppSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), succ u3, succ u1} (AffineMap.{u3, u3, u3, u2, u1} R R R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) (Ring.toAddCommGroup.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)))) (addGroupIsAddTorsor.{u3} R (AddGroupWithOne.toAddGroup.{u3} R (Ring.toAddGroupWithOne.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))))) _inst_2 _inst_3 _inst_4) R (fun (_x : R) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : R) => P) _x) (AffineMap.funLike.{u3, u3, u3, u2, u1} R R R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) (Ring.toAddCommGroup.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)))) (addGroupIsAddTorsor.{u3} R (AddGroupWithOne.toAddGroup.{u3} R (Ring.toAddGroupWithOne.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))))) _inst_2 _inst_3 _inst_4) (AffineMap.lineMap.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 x y) t) y))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.w_opp_side_line_map_left AffineSubspace.wOppSide_lineMap_leftₓ'. -/
theorem wOppSide_lineMap_left {s : AffineSubspace R P} {x : P} (y : P) (h : x ∈ s) {t : R}
(ht : t ≤ 0) : s.WOppSide (lineMap x y t) y :=
wOppSide_smul_vsub_vadd_left y h h ht
#align affine_subspace.w_opp_side_line_map_left AffineSubspace.wOppSide_lineMap_left
+/- warning: affine_subspace.w_opp_side_line_map_right -> AffineSubspace.wOppSide_lineMap_right is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} (y : P), (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)) x s) -> (forall {t : R}, (LE.le.{u1} R (Preorder.toHasLe.{u1} R (PartialOrder.toPreorder.{u1} R (OrderedAddCommGroup.toPartialOrder.{u1} R (StrictOrderedRing.toOrderedAddCommGroup.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))) t (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))))))))))) -> (AffineSubspace.WOppSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s y (coeFn.{max (succ u1) (succ u2) (succ u3), max (succ u1) (succ u3)} (AffineMap.{u1, u1, u1, u2, u3} R R R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (addGroupIsAddTorsor.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))))) _inst_2 _inst_3 _inst_4) (fun (_x : AffineMap.{u1, u1, u1, u2, u3} R R R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (addGroupIsAddTorsor.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))))) _inst_2 _inst_3 _inst_4) => R -> P) (AffineMap.hasCoeToFun.{u1, u1, u1, u2, u3} R R R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))) (addGroupIsAddTorsor.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)))))) _inst_2 _inst_3 _inst_4) (AffineMap.lineMap.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 x y) t)))
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} (y : P), (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4)) x s) -> (forall {t : R}, (LE.le.{u3} R (Preorder.toLE.{u3} R (PartialOrder.toPreorder.{u3} R (StrictOrderedRing.toPartialOrder.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)))) t (OfNat.ofNat.{u3} R 0 (Zero.toOfNat0.{u3} R (CommMonoidWithZero.toZero.{u3} R (CommSemiring.toCommMonoidWithZero.{u3} R (StrictOrderedCommSemiring.toCommSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))))))) -> (AffineSubspace.WOppSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s y (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), succ u3, succ u1} (AffineMap.{u3, u3, u3, u2, u1} R R R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) (Ring.toAddCommGroup.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)))) (addGroupIsAddTorsor.{u3} R (AddGroupWithOne.toAddGroup.{u3} R (Ring.toAddGroupWithOne.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))))) _inst_2 _inst_3 _inst_4) R (fun (_x : R) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : R) => P) _x) (AffineMap.funLike.{u3, u3, u3, u2, u1} R R R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) (Ring.toAddCommGroup.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)))) (addGroupIsAddTorsor.{u3} R (AddGroupWithOne.toAddGroup.{u3} R (Ring.toAddGroupWithOne.{u3} R (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1))))) _inst_2 _inst_3 _inst_4) (AffineMap.lineMap.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 x y) t)))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.w_opp_side_line_map_right AffineSubspace.wOppSide_lineMap_rightₓ'. -/
theorem wOppSide_lineMap_right {s : AffineSubspace R P} {x : P} (y : P) (h : x ∈ s) {t : R}
(ht : t ≤ 0) : s.WOppSide y (lineMap x y t) :=
(wOppSide_lineMap_left y h ht).symm
#align affine_subspace.w_opp_side_line_map_right AffineSubspace.wOppSide_lineMap_right
-theorem Wbtw.w_same_side₂₃ {s : AffineSubspace R P} {x y z : P} (h : Wbtw R x y z) (hx : x ∈ s) :
+/- warning: wbtw.w_same_side₂₃ -> Wbtw.wSameSide₂₃ is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (Wbtw.{u1, u2, u3} R V P (StrictOrderedRing.toOrderedRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 x y z) -> (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)) x s) -> (AffineSubspace.WSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s y z)
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (Wbtw.{u3, u2, u1} R V P (OrderedCommRing.toOrderedRing.{u3} R (StrictOrderedCommRing.toOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 x y z) -> (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4)) x s) -> (AffineSubspace.WSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s y z)
+Case conversion may be inaccurate. Consider using '#align wbtw.w_same_side₂₃ Wbtw.wSameSide₂₃ₓ'. -/
+theorem Wbtw.wSameSide₂₃ {s : AffineSubspace R P} {x y z : P} (h : Wbtw R x y z) (hx : x ∈ s) :
s.WSameSide y z := by
rcases h with ⟨t, ⟨ht0, -⟩, rfl⟩
exact w_same_side_line_map_left z hx ht0
-#align wbtw.w_same_side₂₃ Wbtw.w_same_side₂₃
-
-theorem Wbtw.w_same_side₃₂ {s : AffineSubspace R P} {x y z : P} (h : Wbtw R x y z) (hx : x ∈ s) :
+#align wbtw.w_same_side₂₃ Wbtw.wSameSide₂₃
+
+/- warning: wbtw.w_same_side₃₂ -> Wbtw.wSameSide₃₂ is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (Wbtw.{u1, u2, u3} R V P (StrictOrderedRing.toOrderedRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 x y z) -> (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)) x s) -> (AffineSubspace.WSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s z y)
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (Wbtw.{u3, u2, u1} R V P (OrderedCommRing.toOrderedRing.{u3} R (StrictOrderedCommRing.toOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 x y z) -> (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4)) x s) -> (AffineSubspace.WSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s z y)
+Case conversion may be inaccurate. Consider using '#align wbtw.w_same_side₃₂ Wbtw.wSameSide₃₂ₓ'. -/
+theorem Wbtw.wSameSide₃₂ {s : AffineSubspace R P} {x y z : P} (h : Wbtw R x y z) (hx : x ∈ s) :
s.WSameSide z y :=
- (h.w_same_side₂₃ hx).symm
-#align wbtw.w_same_side₃₂ Wbtw.w_same_side₃₂
-
-theorem Wbtw.w_same_side₁₂ {s : AffineSubspace R P} {x y z : P} (h : Wbtw R x y z) (hz : z ∈ s) :
+ (h.wSameSide₂₃ hx).symm
+#align wbtw.w_same_side₃₂ Wbtw.wSameSide₃₂
+
+/- warning: wbtw.w_same_side₁₂ -> Wbtw.wSameSide₁₂ is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (Wbtw.{u1, u2, u3} R V P (StrictOrderedRing.toOrderedRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 x y z) -> (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)) z s) -> (AffineSubspace.WSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y)
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (Wbtw.{u3, u2, u1} R V P (OrderedCommRing.toOrderedRing.{u3} R (StrictOrderedCommRing.toOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 x y z) -> (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4)) z s) -> (AffineSubspace.WSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x y)
+Case conversion may be inaccurate. Consider using '#align wbtw.w_same_side₁₂ Wbtw.wSameSide₁₂ₓ'. -/
+theorem Wbtw.wSameSide₁₂ {s : AffineSubspace R P} {x y z : P} (h : Wbtw R x y z) (hz : z ∈ s) :
s.WSameSide x y :=
- h.symm.w_same_side₃₂ hz
-#align wbtw.w_same_side₁₂ Wbtw.w_same_side₁₂
-
-theorem Wbtw.w_same_side₂₁ {s : AffineSubspace R P} {x y z : P} (h : Wbtw R x y z) (hz : z ∈ s) :
+ h.symm.wSameSide₃₂ hz
+#align wbtw.w_same_side₁₂ Wbtw.wSameSide₁₂
+
+/- warning: wbtw.w_same_side₂₁ -> Wbtw.wSameSide₂₁ is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (Wbtw.{u1, u2, u3} R V P (StrictOrderedRing.toOrderedRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 x y z) -> (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)) z s) -> (AffineSubspace.WSameSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s y x)
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (Wbtw.{u3, u2, u1} R V P (OrderedCommRing.toOrderedRing.{u3} R (StrictOrderedCommRing.toOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 x y z) -> (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4)) z s) -> (AffineSubspace.WSameSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s y x)
+Case conversion may be inaccurate. Consider using '#align wbtw.w_same_side₂₁ Wbtw.wSameSide₂₁ₓ'. -/
+theorem Wbtw.wSameSide₂₁ {s : AffineSubspace R P} {x y z : P} (h : Wbtw R x y z) (hz : z ∈ s) :
s.WSameSide y x :=
- h.symm.w_same_side₂₃ hz
-#align wbtw.w_same_side₂₁ Wbtw.w_same_side₂₁
-
-theorem Wbtw.w_opp_side₁₃ {s : AffineSubspace R P} {x y z : P} (h : Wbtw R x y z) (hy : y ∈ s) :
+ h.symm.wSameSide₂₃ hz
+#align wbtw.w_same_side₂₁ Wbtw.wSameSide₂₁
+
+/- warning: wbtw.w_opp_side₁₃ -> Wbtw.wOppSide₁₃ is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (Wbtw.{u1, u2, u3} R V P (StrictOrderedRing.toOrderedRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 x y z) -> (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)) y s) -> (AffineSubspace.WOppSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x z)
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (Wbtw.{u3, u2, u1} R V P (OrderedCommRing.toOrderedRing.{u3} R (StrictOrderedCommRing.toOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 x y z) -> (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4)) y s) -> (AffineSubspace.WOppSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s x z)
+Case conversion may be inaccurate. Consider using '#align wbtw.w_opp_side₁₃ Wbtw.wOppSide₁₃ₓ'. -/
+theorem Wbtw.wOppSide₁₃ {s : AffineSubspace R P} {x y z : P} (h : Wbtw R x y z) (hy : y ∈ s) :
s.WOppSide x z := by
rcases h with ⟨t, ⟨ht0, ht1⟩, rfl⟩
refine' ⟨_, hy, _, hy, _⟩
@@ -413,12 +775,18 @@ theorem Wbtw.w_opp_side₁₃ {s : AffineSubspace R P} {x y z : P} (h : Wbtw R x
simp_rw [line_map_apply, vadd_vsub_assoc, vsub_vadd_eq_vsub_sub, ← neg_vsub_eq_vsub_rev z x,
vsub_self, zero_sub, ← neg_one_smul R (z -ᵥ x), ← add_smul, smul_neg, ← neg_smul, smul_smul]
ring_nf
-#align wbtw.w_opp_side₁₃ Wbtw.w_opp_side₁₃
-
-theorem Wbtw.w_opp_side₃₁ {s : AffineSubspace R P} {x y z : P} (h : Wbtw R x y z) (hy : y ∈ s) :
+#align wbtw.w_opp_side₁₃ Wbtw.wOppSide₁₃
+
+/- warning: wbtw.w_opp_side₃₁ -> Wbtw.wOppSide₃₁ is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : StrictOrderedCommRing.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (Wbtw.{u1, u2, u3} R V P (StrictOrderedRing.toOrderedRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 x y z) -> (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (StrictOrderedRing.toRing.{u1} R (StrictOrderedCommRing.toStrictOrderedRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4)) y s) -> (AffineSubspace.WOppSide.{u1, u2, u3} R V P _inst_1 _inst_2 _inst_3 _inst_4 s z x)
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : StrictOrderedCommRing.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (StrictOrderedSemiring.toSemiring.{u3} R (StrictOrderedCommSemiring.toStrictOrderedSemiring.{u3} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u3} R _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (Wbtw.{u3, u2, u1} R V P (OrderedCommRing.toOrderedRing.{u3} R (StrictOrderedCommRing.toOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 x y z) -> (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (StrictOrderedRing.toRing.{u3} R (StrictOrderedCommRing.toStrictOrderedRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4)) y s) -> (AffineSubspace.WOppSide.{u3, u2, u1} R V P _inst_1 _inst_2 _inst_3 _inst_4 s z x)
+Case conversion may be inaccurate. Consider using '#align wbtw.w_opp_side₃₁ Wbtw.wOppSide₃₁ₓ'. -/
+theorem Wbtw.wOppSide₃₁ {s : AffineSubspace R P} {x y z : P} (h : Wbtw R x y z) (hy : y ∈ s) :
s.WOppSide z x :=
- h.symm.w_opp_side₁₃ hy
-#align wbtw.w_opp_side₃₁ Wbtw.w_opp_side₃₁
+ h.symm.wOppSide₁₃ hy
+#align wbtw.w_opp_side₃₁ Wbtw.wOppSide₃₁
end StrictOrderedCommRing
@@ -432,6 +800,12 @@ include V
variable {R}
+/- warning: affine_subspace.w_opp_side_self_iff -> AffineSubspace.wOppSide_self_iff is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P}, Iff (AffineSubspace.WOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x x) (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s)
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P}, Iff (AffineSubspace.WOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x x) (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s)
+Case conversion may be inaccurate. Consider using '#align affine_subspace.w_opp_side_self_iff AffineSubspace.wOppSide_self_iffₓ'. -/
@[simp]
theorem wOppSide_self_iff {s : AffineSubspace R P} {x : P} : s.WOppSide x x ↔ x ∈ s :=
by
@@ -444,9 +818,21 @@ theorem wOppSide_self_iff {s : AffineSubspace R P} {x : P} : s.WOppSide x x ↔
· exact fun h => ⟨x, h, x, h, SameRay.rfl⟩
#align affine_subspace.w_opp_side_self_iff AffineSubspace.wOppSide_self_iff
+/- warning: affine_subspace.not_s_opp_side_self -> AffineSubspace.not_sOppSide_self is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] (s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (x : P), Not (AffineSubspace.SOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x x)
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] (s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (x : P), Not (AffineSubspace.SOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x x)
+Case conversion may be inaccurate. Consider using '#align affine_subspace.not_s_opp_side_self AffineSubspace.not_sOppSide_selfₓ'. -/
theorem not_sOppSide_self (s : AffineSubspace R P) (x : P) : ¬s.SOppSide x x := by simp [s_opp_side]
#align affine_subspace.not_s_opp_side_self AffineSubspace.not_sOppSide_self
+/- warning: affine_subspace.w_same_side_iff_exists_left -> AffineSubspace.wSameSide_iff_exists_left is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {p₁ : P}, (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₁ s) -> (Iff (AffineSubspace.WSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) (Or (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s) (Exists.{succ u3} P (fun (p₂ : P) => Exists.{0} (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₂ s) (fun (H : Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₂ s) => SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3 (VSub.vsub.{u2, u3} V P (AddTorsor.toHasVsub.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p₁) (VSub.vsub.{u2, u3} V P (AddTorsor.toHasVsub.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) y p₂))))))
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {p₁ : P}, (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₁ s) -> (Iff (AffineSubspace.WSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) (Or (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s) (Exists.{succ u1} P (fun (p₂ : P) => And (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₂ s) (SameRay.{u3, u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1))) V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3 (VSub.vsub.{u2, u1} V P (AddTorsor.toVSub.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p₁) (VSub.vsub.{u2, u1} V P (AddTorsor.toVSub.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) y p₂))))))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.w_same_side_iff_exists_left AffineSubspace.wSameSide_iff_exists_leftₓ'. -/
theorem wSameSide_iff_exists_left {s : AffineSubspace R P} {x y p₁ : P} (h : p₁ ∈ s) :
s.WSameSide x y ↔ x ∈ s ∨ ∃ p₂ ∈ s, SameRay R (x -ᵥ p₁) (y -ᵥ p₂) :=
by
@@ -469,6 +855,12 @@ theorem wSameSide_iff_exists_left {s : AffineSubspace R P} {x y p₁ : P} (h : p
· exact ⟨p₁, h, h'⟩
#align affine_subspace.w_same_side_iff_exists_left AffineSubspace.wSameSide_iff_exists_left
+/- warning: affine_subspace.w_same_side_iff_exists_right -> AffineSubspace.wSameSide_iff_exists_right is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {p₂ : P}, (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₂ s) -> (Iff (AffineSubspace.WSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) (Or (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s) (Exists.{succ u3} P (fun (p₁ : P) => Exists.{0} (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₁ s) (fun (H : Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₁ s) => SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3 (VSub.vsub.{u2, u3} V P (AddTorsor.toHasVsub.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p₁) (VSub.vsub.{u2, u3} V P (AddTorsor.toHasVsub.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) y p₂))))))
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {p₂ : P}, (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₂ s) -> (Iff (AffineSubspace.WSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) (Or (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s) (Exists.{succ u1} P (fun (p₁ : P) => And (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₁ s) (SameRay.{u3, u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1))) V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3 (VSub.vsub.{u2, u1} V P (AddTorsor.toVSub.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p₁) (VSub.vsub.{u2, u1} V P (AddTorsor.toVSub.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) y p₂))))))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.w_same_side_iff_exists_right AffineSubspace.wSameSide_iff_exists_rightₓ'. -/
theorem wSameSide_iff_exists_right {s : AffineSubspace R P} {x y p₂ : P} (h : p₂ ∈ s) :
s.WSameSide x y ↔ y ∈ s ∨ ∃ p₁ ∈ s, SameRay R (x -ᵥ p₁) (y -ᵥ p₂) :=
by
@@ -476,6 +868,12 @@ theorem wSameSide_iff_exists_right {s : AffineSubspace R P} {x y p₂ : P} (h :
simp_rw [SameRay.sameRay_comm]
#align affine_subspace.w_same_side_iff_exists_right AffineSubspace.wSameSide_iff_exists_right
+/- warning: affine_subspace.s_same_side_iff_exists_left -> AffineSubspace.sSameSide_iff_exists_left is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {p₁ : P}, (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₁ s) -> (Iff (AffineSubspace.SSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) (And (Not (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s)) (And (Not (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s)) (Exists.{succ u3} P (fun (p₂ : P) => Exists.{0} (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₂ s) (fun (H : Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₂ s) => SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3 (VSub.vsub.{u2, u3} V P (AddTorsor.toHasVsub.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p₁) (VSub.vsub.{u2, u3} V P (AddTorsor.toHasVsub.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) y p₂)))))))
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {p₁ : P}, (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₁ s) -> (Iff (AffineSubspace.SSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) (And (Not (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s)) (And (Not (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s)) (Exists.{succ u1} P (fun (p₂ : P) => And (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₂ s) (SameRay.{u3, u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1))) V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3 (VSub.vsub.{u2, u1} V P (AddTorsor.toVSub.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p₁) (VSub.vsub.{u2, u1} V P (AddTorsor.toVSub.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) y p₂)))))))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.s_same_side_iff_exists_left AffineSubspace.sSameSide_iff_exists_leftₓ'. -/
theorem sSameSide_iff_exists_left {s : AffineSubspace R P} {x y p₁ : P} (h : p₁ ∈ s) :
s.SSameSide x y ↔ x ∉ s ∧ y ∉ s ∧ ∃ p₂ ∈ s, SameRay R (x -ᵥ p₁) (y -ᵥ p₂) :=
by
@@ -484,6 +882,12 @@ theorem sSameSide_iff_exists_left {s : AffineSubspace R P} {x y p₁ : P} (h : p
rw [or_iff_right hx]
#align affine_subspace.s_same_side_iff_exists_left AffineSubspace.sSameSide_iff_exists_left
+/- warning: affine_subspace.s_same_side_iff_exists_right -> AffineSubspace.sSameSide_iff_exists_right is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {p₂ : P}, (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₂ s) -> (Iff (AffineSubspace.SSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) (And (Not (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s)) (And (Not (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s)) (Exists.{succ u3} P (fun (p₁ : P) => Exists.{0} (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₁ s) (fun (H : Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₁ s) => SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3 (VSub.vsub.{u2, u3} V P (AddTorsor.toHasVsub.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p₁) (VSub.vsub.{u2, u3} V P (AddTorsor.toHasVsub.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) y p₂)))))))
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {p₂ : P}, (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₂ s) -> (Iff (AffineSubspace.SSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) (And (Not (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s)) (And (Not (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s)) (Exists.{succ u1} P (fun (p₁ : P) => And (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₁ s) (SameRay.{u3, u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1))) V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3 (VSub.vsub.{u2, u1} V P (AddTorsor.toVSub.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p₁) (VSub.vsub.{u2, u1} V P (AddTorsor.toVSub.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) y p₂)))))))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.s_same_side_iff_exists_right AffineSubspace.sSameSide_iff_exists_rightₓ'. -/
theorem sSameSide_iff_exists_right {s : AffineSubspace R P} {x y p₂ : P} (h : p₂ ∈ s) :
s.SSameSide x y ↔ x ∉ s ∧ y ∉ s ∧ ∃ p₁ ∈ s, SameRay R (x -ᵥ p₁) (y -ᵥ p₂) :=
by
@@ -491,6 +895,12 @@ theorem sSameSide_iff_exists_right {s : AffineSubspace R P} {x y p₂ : P} (h :
simp_rw [SameRay.sameRay_comm]
#align affine_subspace.s_same_side_iff_exists_right AffineSubspace.sSameSide_iff_exists_right
+/- warning: affine_subspace.w_opp_side_iff_exists_left -> AffineSubspace.wOppSide_iff_exists_left is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {p₁ : P}, (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₁ s) -> (Iff (AffineSubspace.WOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) (Or (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s) (Exists.{succ u3} P (fun (p₂ : P) => Exists.{0} (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₂ s) (fun (H : Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₂ s) => SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3 (VSub.vsub.{u2, u3} V P (AddTorsor.toHasVsub.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p₁) (VSub.vsub.{u2, u3} V P (AddTorsor.toHasVsub.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) p₂ y))))))
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {p₁ : P}, (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₁ s) -> (Iff (AffineSubspace.WOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) (Or (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s) (Exists.{succ u1} P (fun (p₂ : P) => And (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₂ s) (SameRay.{u3, u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1))) V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3 (VSub.vsub.{u2, u1} V P (AddTorsor.toVSub.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p₁) (VSub.vsub.{u2, u1} V P (AddTorsor.toVSub.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) p₂ y))))))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.w_opp_side_iff_exists_left AffineSubspace.wOppSide_iff_exists_leftₓ'. -/
theorem wOppSide_iff_exists_left {s : AffineSubspace R P} {x y p₁ : P} (h : p₁ ∈ s) :
s.WOppSide x y ↔ x ∈ s ∨ ∃ p₂ ∈ s, SameRay R (x -ᵥ p₁) (p₂ -ᵥ y) :=
by
@@ -514,6 +924,12 @@ theorem wOppSide_iff_exists_left {s : AffineSubspace R P} {x y p₁ : P} (h : p
· exact ⟨p₁, h, h'⟩
#align affine_subspace.w_opp_side_iff_exists_left AffineSubspace.wOppSide_iff_exists_left
+/- warning: affine_subspace.w_opp_side_iff_exists_right -> AffineSubspace.wOppSide_iff_exists_right is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {p₂ : P}, (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₂ s) -> (Iff (AffineSubspace.WOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) (Or (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s) (Exists.{succ u3} P (fun (p₁ : P) => Exists.{0} (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₁ s) (fun (H : Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₁ s) => SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3 (VSub.vsub.{u2, u3} V P (AddTorsor.toHasVsub.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p₁) (VSub.vsub.{u2, u3} V P (AddTorsor.toHasVsub.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) p₂ y))))))
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {p₂ : P}, (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₂ s) -> (Iff (AffineSubspace.WOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) (Or (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s) (Exists.{succ u1} P (fun (p₁ : P) => And (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₁ s) (SameRay.{u3, u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1))) V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3 (VSub.vsub.{u2, u1} V P (AddTorsor.toVSub.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p₁) (VSub.vsub.{u2, u1} V P (AddTorsor.toVSub.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) p₂ y))))))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.w_opp_side_iff_exists_right AffineSubspace.wOppSide_iff_exists_rightₓ'. -/
theorem wOppSide_iff_exists_right {s : AffineSubspace R P} {x y p₂ : P} (h : p₂ ∈ s) :
s.WOppSide x y ↔ y ∈ s ∨ ∃ p₁ ∈ s, SameRay R (x -ᵥ p₁) (p₂ -ᵥ y) :=
by
@@ -529,6 +945,12 @@ theorem wOppSide_iff_exists_right {s : AffineSubspace R P} {x y p₂ : P} (h : p
rwa [SameRay.sameRay_comm, ← sameRay_neg_iff, neg_vsub_eq_vsub_rev, neg_vsub_eq_vsub_rev]
#align affine_subspace.w_opp_side_iff_exists_right AffineSubspace.wOppSide_iff_exists_right
+/- warning: affine_subspace.s_opp_side_iff_exists_left -> AffineSubspace.sOppSide_iff_exists_left is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {p₁ : P}, (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₁ s) -> (Iff (AffineSubspace.SOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) (And (Not (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s)) (And (Not (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s)) (Exists.{succ u3} P (fun (p₂ : P) => Exists.{0} (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₂ s) (fun (H : Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₂ s) => SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3 (VSub.vsub.{u2, u3} V P (AddTorsor.toHasVsub.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p₁) (VSub.vsub.{u2, u3} V P (AddTorsor.toHasVsub.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) p₂ y)))))))
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {p₁ : P}, (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₁ s) -> (Iff (AffineSubspace.SOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) (And (Not (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s)) (And (Not (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s)) (Exists.{succ u1} P (fun (p₂ : P) => And (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₂ s) (SameRay.{u3, u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1))) V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3 (VSub.vsub.{u2, u1} V P (AddTorsor.toVSub.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p₁) (VSub.vsub.{u2, u1} V P (AddTorsor.toVSub.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) p₂ y)))))))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.s_opp_side_iff_exists_left AffineSubspace.sOppSide_iff_exists_leftₓ'. -/
theorem sOppSide_iff_exists_left {s : AffineSubspace R P} {x y p₁ : P} (h : p₁ ∈ s) :
s.SOppSide x y ↔ x ∉ s ∧ y ∉ s ∧ ∃ p₂ ∈ s, SameRay R (x -ᵥ p₁) (p₂ -ᵥ y) :=
by
@@ -537,6 +959,12 @@ theorem sOppSide_iff_exists_left {s : AffineSubspace R P} {x y p₁ : P} (h : p
rw [or_iff_right hx]
#align affine_subspace.s_opp_side_iff_exists_left AffineSubspace.sOppSide_iff_exists_left
+/- warning: affine_subspace.s_opp_side_iff_exists_right -> AffineSubspace.sOppSide_iff_exists_right is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {p₂ : P}, (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₂ s) -> (Iff (AffineSubspace.SOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) (And (Not (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s)) (And (Not (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s)) (Exists.{succ u3} P (fun (p₁ : P) => Exists.{0} (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₁ s) (fun (H : Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₁ s) => SameRay.{u1, u2} R (StrictOrderedCommRing.toStrictOrderedCommSemiring.{u1} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1))) V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3 (VSub.vsub.{u2, u3} V P (AddTorsor.toHasVsub.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p₁) (VSub.vsub.{u2, u3} V P (AddTorsor.toHasVsub.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) p₂ y)))))))
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {p₂ : P}, (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₂ s) -> (Iff (AffineSubspace.SOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) (And (Not (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s)) (And (Not (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s)) (Exists.{succ u1} P (fun (p₁ : P) => And (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₁ s) (SameRay.{u3, u2} R (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} R (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1))) V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3 (VSub.vsub.{u2, u1} V P (AddTorsor.toVSub.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p₁) (VSub.vsub.{u2, u1} V P (AddTorsor.toVSub.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) p₂ y)))))))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.s_opp_side_iff_exists_right AffineSubspace.sOppSide_iff_exists_rightₓ'. -/
theorem sOppSide_iff_exists_right {s : AffineSubspace R P} {x y p₂ : P} (h : p₂ ∈ s) :
s.SOppSide x y ↔ x ∉ s ∧ y ∉ s ∧ ∃ p₁ ∈ s, SameRay R (x -ᵥ p₁) (p₂ -ᵥ y) :=
by
@@ -546,6 +974,12 @@ theorem sOppSide_iff_exists_right {s : AffineSubspace R P} {x y p₂ : P} (h : p
rw [or_iff_right hy]
#align affine_subspace.s_opp_side_iff_exists_right AffineSubspace.sOppSide_iff_exists_right
+/- warning: affine_subspace.w_same_side.trans -> AffineSubspace.WSameSide.trans is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (AffineSubspace.WSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.WSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s y z) -> (Not (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s)) -> (AffineSubspace.WSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (AffineSubspace.WSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.WSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s y z) -> (Not (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s)) -> (AffineSubspace.WSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
+Case conversion may be inaccurate. Consider using '#align affine_subspace.w_same_side.trans AffineSubspace.WSameSide.transₓ'. -/
theorem WSameSide.trans {s : AffineSubspace R P} {x y z : P} (hxy : s.WSameSide x y)
(hyz : s.WSameSide y z) (hy : y ∉ s) : s.WSameSide x z :=
by
@@ -558,11 +992,23 @@ theorem WSameSide.trans {s : AffineSubspace R P} {x y z : P} (hxy : s.WSameSide
exact hy (h.symm ▸ hp₂)
#align affine_subspace.w_same_side.trans AffineSubspace.WSameSide.trans
+/- warning: affine_subspace.w_same_side.trans_s_same_side -> AffineSubspace.WSameSide.trans_sSameSide is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (AffineSubspace.WSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.SSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s y z) -> (AffineSubspace.WSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (AffineSubspace.WSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.SSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s y z) -> (AffineSubspace.WSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
+Case conversion may be inaccurate. Consider using '#align affine_subspace.w_same_side.trans_s_same_side AffineSubspace.WSameSide.trans_sSameSideₓ'. -/
theorem WSameSide.trans_sSameSide {s : AffineSubspace R P} {x y z : P} (hxy : s.WSameSide x y)
(hyz : s.SSameSide y z) : s.WSameSide x z :=
hxy.trans hyz.1 hyz.2.1
#align affine_subspace.w_same_side.trans_s_same_side AffineSubspace.WSameSide.trans_sSameSide
+/- warning: affine_subspace.w_same_side.trans_w_opp_side -> AffineSubspace.WSameSide.trans_wOppSide is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (AffineSubspace.WSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.WOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s y z) -> (Not (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s)) -> (AffineSubspace.WOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (AffineSubspace.WSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.WOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s y z) -> (Not (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s)) -> (AffineSubspace.WOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
+Case conversion may be inaccurate. Consider using '#align affine_subspace.w_same_side.trans_w_opp_side AffineSubspace.WSameSide.trans_wOppSideₓ'. -/
theorem WSameSide.trans_wOppSide {s : AffineSubspace R P} {x y z : P} (hxy : s.WSameSide x y)
(hyz : s.WOppSide y z) (hy : y ∉ s) : s.WOppSide x z :=
by
@@ -575,41 +1021,89 @@ theorem WSameSide.trans_wOppSide {s : AffineSubspace R P} {x y z : P} (hxy : s.W
exact hy (h.symm ▸ hp₂)
#align affine_subspace.w_same_side.trans_w_opp_side AffineSubspace.WSameSide.trans_wOppSide
+/- warning: affine_subspace.w_same_side.trans_s_opp_side -> AffineSubspace.WSameSide.trans_sOppSide is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (AffineSubspace.WSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.SOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s y z) -> (AffineSubspace.WOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (AffineSubspace.WSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.SOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s y z) -> (AffineSubspace.WOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
+Case conversion may be inaccurate. Consider using '#align affine_subspace.w_same_side.trans_s_opp_side AffineSubspace.WSameSide.trans_sOppSideₓ'. -/
theorem WSameSide.trans_sOppSide {s : AffineSubspace R P} {x y z : P} (hxy : s.WSameSide x y)
(hyz : s.SOppSide y z) : s.WOppSide x z :=
hxy.trans_wOppSide hyz.1 hyz.2.1
#align affine_subspace.w_same_side.trans_s_opp_side AffineSubspace.WSameSide.trans_sOppSide
+/- warning: affine_subspace.s_same_side.trans_w_same_side -> AffineSubspace.SSameSide.trans_wSameSide is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (AffineSubspace.SSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.WSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s y z) -> (AffineSubspace.WSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (AffineSubspace.SSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.WSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s y z) -> (AffineSubspace.WSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
+Case conversion may be inaccurate. Consider using '#align affine_subspace.s_same_side.trans_w_same_side AffineSubspace.SSameSide.trans_wSameSideₓ'. -/
theorem SSameSide.trans_wSameSide {s : AffineSubspace R P} {x y z : P} (hxy : s.SSameSide x y)
(hyz : s.WSameSide y z) : s.WSameSide x z :=
(hyz.symm.trans_sSameSide hxy.symm).symm
#align affine_subspace.s_same_side.trans_w_same_side AffineSubspace.SSameSide.trans_wSameSide
+/- warning: affine_subspace.s_same_side.trans -> AffineSubspace.SSameSide.trans is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (AffineSubspace.SSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.SSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s y z) -> (AffineSubspace.SSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (AffineSubspace.SSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.SSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s y z) -> (AffineSubspace.SSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
+Case conversion may be inaccurate. Consider using '#align affine_subspace.s_same_side.trans AffineSubspace.SSameSide.transₓ'. -/
theorem SSameSide.trans {s : AffineSubspace R P} {x y z : P} (hxy : s.SSameSide x y)
(hyz : s.SSameSide y z) : s.SSameSide x z :=
⟨hxy.WSameSide.trans_sSameSide hyz, hxy.2.1, hyz.2.2⟩
#align affine_subspace.s_same_side.trans AffineSubspace.SSameSide.trans
+/- warning: affine_subspace.s_same_side.trans_w_opp_side -> AffineSubspace.SSameSide.trans_wOppSide is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (AffineSubspace.SSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.WOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s y z) -> (AffineSubspace.WOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (AffineSubspace.SSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.WOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s y z) -> (AffineSubspace.WOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
+Case conversion may be inaccurate. Consider using '#align affine_subspace.s_same_side.trans_w_opp_side AffineSubspace.SSameSide.trans_wOppSideₓ'. -/
theorem SSameSide.trans_wOppSide {s : AffineSubspace R P} {x y z : P} (hxy : s.SSameSide x y)
(hyz : s.WOppSide y z) : s.WOppSide x z :=
hxy.WSameSide.trans_wOppSide hyz hxy.2.2
#align affine_subspace.s_same_side.trans_w_opp_side AffineSubspace.SSameSide.trans_wOppSide
+/- warning: affine_subspace.s_same_side.trans_s_opp_side -> AffineSubspace.SSameSide.trans_sOppSide is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (AffineSubspace.SSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.SOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s y z) -> (AffineSubspace.SOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (AffineSubspace.SSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.SOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s y z) -> (AffineSubspace.SOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
+Case conversion may be inaccurate. Consider using '#align affine_subspace.s_same_side.trans_s_opp_side AffineSubspace.SSameSide.trans_sOppSideₓ'. -/
theorem SSameSide.trans_sOppSide {s : AffineSubspace R P} {x y z : P} (hxy : s.SSameSide x y)
(hyz : s.SOppSide y z) : s.SOppSide x z :=
⟨hxy.trans_wOppSide hyz.1, hxy.2.1, hyz.2.2⟩
#align affine_subspace.s_same_side.trans_s_opp_side AffineSubspace.SSameSide.trans_sOppSide
+/- warning: affine_subspace.w_opp_side.trans_w_same_side -> AffineSubspace.WOppSide.trans_wSameSide is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (AffineSubspace.WOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.WSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s y z) -> (Not (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s)) -> (AffineSubspace.WOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (AffineSubspace.WOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.WSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s y z) -> (Not (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s)) -> (AffineSubspace.WOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
+Case conversion may be inaccurate. Consider using '#align affine_subspace.w_opp_side.trans_w_same_side AffineSubspace.WOppSide.trans_wSameSideₓ'. -/
theorem WOppSide.trans_wSameSide {s : AffineSubspace R P} {x y z : P} (hxy : s.WOppSide x y)
(hyz : s.WSameSide y z) (hy : y ∉ s) : s.WOppSide x z :=
(hyz.symm.trans_wOppSide hxy.symm hy).symm
#align affine_subspace.w_opp_side.trans_w_same_side AffineSubspace.WOppSide.trans_wSameSide
+/- warning: affine_subspace.w_opp_side.trans_s_same_side -> AffineSubspace.WOppSide.trans_sSameSide is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (AffineSubspace.WOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.SSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s y z) -> (AffineSubspace.WOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (AffineSubspace.WOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.SSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s y z) -> (AffineSubspace.WOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
+Case conversion may be inaccurate. Consider using '#align affine_subspace.w_opp_side.trans_s_same_side AffineSubspace.WOppSide.trans_sSameSideₓ'. -/
theorem WOppSide.trans_sSameSide {s : AffineSubspace R P} {x y z : P} (hxy : s.WOppSide x y)
(hyz : s.SSameSide y z) : s.WOppSide x z :=
hxy.trans_wSameSide hyz.1 hyz.2.1
#align affine_subspace.w_opp_side.trans_s_same_side AffineSubspace.WOppSide.trans_sSameSide
+/- warning: affine_subspace.w_opp_side.trans -> AffineSubspace.WOppSide.trans is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (AffineSubspace.WOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.WOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s y z) -> (Not (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s)) -> (AffineSubspace.WSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (AffineSubspace.WOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.WOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s y z) -> (Not (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s)) -> (AffineSubspace.WSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
+Case conversion may be inaccurate. Consider using '#align affine_subspace.w_opp_side.trans AffineSubspace.WOppSide.transₓ'. -/
theorem WOppSide.trans {s : AffineSubspace R P} {x y z : P} (hxy : s.WOppSide x y)
(hyz : s.WOppSide y z) (hy : y ∉ s) : s.WSameSide x z :=
by
@@ -623,31 +1117,67 @@ theorem WOppSide.trans {s : AffineSubspace R P} {x y z : P} (hxy : s.WOppSide x
exact hy (h ▸ hp₂)
#align affine_subspace.w_opp_side.trans AffineSubspace.WOppSide.trans
+/- warning: affine_subspace.w_opp_side.trans_s_opp_side -> AffineSubspace.WOppSide.trans_sOppSide is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (AffineSubspace.WOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.SOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s y z) -> (AffineSubspace.WSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (AffineSubspace.WOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.SOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s y z) -> (AffineSubspace.WSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
+Case conversion may be inaccurate. Consider using '#align affine_subspace.w_opp_side.trans_s_opp_side AffineSubspace.WOppSide.trans_sOppSideₓ'. -/
theorem WOppSide.trans_sOppSide {s : AffineSubspace R P} {x y z : P} (hxy : s.WOppSide x y)
(hyz : s.SOppSide y z) : s.WSameSide x z :=
hxy.trans hyz.1 hyz.2.1
#align affine_subspace.w_opp_side.trans_s_opp_side AffineSubspace.WOppSide.trans_sOppSide
+/- warning: affine_subspace.s_opp_side.trans_w_same_side -> AffineSubspace.SOppSide.trans_wSameSide is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (AffineSubspace.SOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.WSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s y z) -> (AffineSubspace.WOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (AffineSubspace.SOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.WSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s y z) -> (AffineSubspace.WOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
+Case conversion may be inaccurate. Consider using '#align affine_subspace.s_opp_side.trans_w_same_side AffineSubspace.SOppSide.trans_wSameSideₓ'. -/
theorem SOppSide.trans_wSameSide {s : AffineSubspace R P} {x y z : P} (hxy : s.SOppSide x y)
(hyz : s.WSameSide y z) : s.WOppSide x z :=
(hyz.symm.trans_sOppSide hxy.symm).symm
#align affine_subspace.s_opp_side.trans_w_same_side AffineSubspace.SOppSide.trans_wSameSide
+/- warning: affine_subspace.s_opp_side.trans_s_same_side -> AffineSubspace.SOppSide.trans_sSameSide is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (AffineSubspace.SOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.SSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s y z) -> (AffineSubspace.SOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (AffineSubspace.SOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.SSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s y z) -> (AffineSubspace.SOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
+Case conversion may be inaccurate. Consider using '#align affine_subspace.s_opp_side.trans_s_same_side AffineSubspace.SOppSide.trans_sSameSideₓ'. -/
theorem SOppSide.trans_sSameSide {s : AffineSubspace R P} {x y z : P} (hxy : s.SOppSide x y)
(hyz : s.SSameSide y z) : s.SOppSide x z :=
(hyz.symm.trans_sOppSide hxy.symm).symm
#align affine_subspace.s_opp_side.trans_s_same_side AffineSubspace.SOppSide.trans_sSameSide
+/- warning: affine_subspace.s_opp_side.trans_w_opp_side -> AffineSubspace.SOppSide.trans_wOppSide is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (AffineSubspace.SOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.WOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s y z) -> (AffineSubspace.WSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (AffineSubspace.SOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.WOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s y z) -> (AffineSubspace.WSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
+Case conversion may be inaccurate. Consider using '#align affine_subspace.s_opp_side.trans_w_opp_side AffineSubspace.SOppSide.trans_wOppSideₓ'. -/
theorem SOppSide.trans_wOppSide {s : AffineSubspace R P} {x y z : P} (hxy : s.SOppSide x y)
(hyz : s.WOppSide y z) : s.WSameSide x z :=
(hyz.symm.trans_sOppSide hxy.symm).symm
#align affine_subspace.s_opp_side.trans_w_opp_side AffineSubspace.SOppSide.trans_wOppSide
+/- warning: affine_subspace.s_opp_side.trans -> AffineSubspace.SOppSide.trans is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (AffineSubspace.SOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.SOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s y z) -> (AffineSubspace.SSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (AffineSubspace.SOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (AffineSubspace.SOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s y z) -> (AffineSubspace.SSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
+Case conversion may be inaccurate. Consider using '#align affine_subspace.s_opp_side.trans AffineSubspace.SOppSide.transₓ'. -/
theorem SOppSide.trans {s : AffineSubspace R P} {x y z : P} (hxy : s.SOppSide x y)
(hyz : s.SOppSide y z) : s.SSameSide x z :=
⟨hxy.trans_wOppSide hyz.1, hxy.2.1, hyz.2.2⟩
#align affine_subspace.s_opp_side.trans AffineSubspace.SOppSide.trans
+/- warning: affine_subspace.w_same_side_and_w_opp_side_iff -> AffineSubspace.wSameSide_and_wOppSide_iff is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, Iff (And (AffineSubspace.WSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) (AffineSubspace.WOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y)) (Or (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s) (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s))
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, Iff (And (AffineSubspace.WSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) (AffineSubspace.WOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y)) (Or (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s) (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.w_same_side_and_w_opp_side_iff AffineSubspace.wSameSide_and_wOppSide_iffₓ'. -/
theorem wSameSide_and_wOppSide_iff {s : AffineSubspace R P} {x y : P} :
s.WSameSide x y ∧ s.WOppSide x y ↔ x ∈ s ∨ y ∈ s :=
by
@@ -662,6 +1192,12 @@ theorem wSameSide_and_wOppSide_iff {s : AffineSubspace R P} {x y : P} :
· exact ⟨w_same_side_of_right_mem x h, w_opp_side_of_right_mem x h⟩
#align affine_subspace.w_same_side_and_w_opp_side_iff AffineSubspace.wSameSide_and_wOppSide_iff
+/- warning: affine_subspace.w_same_side.not_s_opp_side -> AffineSubspace.WSameSide.not_sOppSide is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.WSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (Not (AffineSubspace.SOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y))
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.WSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (Not (AffineSubspace.SOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.w_same_side.not_s_opp_side AffineSubspace.WSameSide.not_sOppSideₓ'. -/
theorem WSameSide.not_sOppSide {s : AffineSubspace R P} {x y : P} (h : s.WSameSide x y) :
¬s.SOppSide x y := by
intro ho
@@ -671,6 +1207,12 @@ theorem WSameSide.not_sOppSide {s : AffineSubspace R P} {x y : P} (h : s.WSameSi
· exact ho.2.2 hy
#align affine_subspace.w_same_side.not_s_opp_side AffineSubspace.WSameSide.not_sOppSide
+/- warning: affine_subspace.s_same_side.not_w_opp_side -> AffineSubspace.SSameSide.not_wOppSide is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.SSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (Not (AffineSubspace.WOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y))
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.SSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (Not (AffineSubspace.WOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.s_same_side.not_w_opp_side AffineSubspace.SSameSide.not_wOppSideₓ'. -/
theorem SSameSide.not_wOppSide {s : AffineSubspace R P} {x y : P} (h : s.SSameSide x y) :
¬s.WOppSide x y := by
intro ho
@@ -680,26 +1222,56 @@ theorem SSameSide.not_wOppSide {s : AffineSubspace R P} {x y : P} (h : s.SSameSi
· exact h.2.2 hy
#align affine_subspace.s_same_side.not_w_opp_side AffineSubspace.SSameSide.not_wOppSide
+/- warning: affine_subspace.s_same_side.not_s_opp_side -> AffineSubspace.SSameSide.not_sOppSide is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.SSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (Not (AffineSubspace.SOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y))
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.SSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (Not (AffineSubspace.SOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.s_same_side.not_s_opp_side AffineSubspace.SSameSide.not_sOppSideₓ'. -/
theorem SSameSide.not_sOppSide {s : AffineSubspace R P} {x y : P} (h : s.SSameSide x y) :
¬s.SOppSide x y := fun ho => h.not_wOppSide ho.1
#align affine_subspace.s_same_side.not_s_opp_side AffineSubspace.SSameSide.not_sOppSide
+/- warning: affine_subspace.w_opp_side.not_s_same_side -> AffineSubspace.WOppSide.not_sSameSide is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.WOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (Not (AffineSubspace.SSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y))
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.WOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (Not (AffineSubspace.SSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.w_opp_side.not_s_same_side AffineSubspace.WOppSide.not_sSameSideₓ'. -/
theorem WOppSide.not_sSameSide {s : AffineSubspace R P} {x y : P} (h : s.WOppSide x y) :
¬s.SSameSide x y := fun hs => hs.not_wOppSide h
#align affine_subspace.w_opp_side.not_s_same_side AffineSubspace.WOppSide.not_sSameSide
+/- warning: affine_subspace.s_opp_side.not_w_same_side -> AffineSubspace.SOppSide.not_wSameSide is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.SOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (Not (AffineSubspace.WSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y))
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.SOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (Not (AffineSubspace.WSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.s_opp_side.not_w_same_side AffineSubspace.SOppSide.not_wSameSideₓ'. -/
theorem SOppSide.not_wSameSide {s : AffineSubspace R P} {x y : P} (h : s.SOppSide x y) :
¬s.WSameSide x y := fun hs => hs.not_sOppSide h
#align affine_subspace.s_opp_side.not_w_same_side AffineSubspace.SOppSide.not_wSameSide
+/- warning: affine_subspace.s_opp_side.not_s_same_side -> AffineSubspace.SOppSide.not_sSameSide is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.SOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (Not (AffineSubspace.SSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y))
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.SOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (Not (AffineSubspace.SSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.s_opp_side.not_s_same_side AffineSubspace.SOppSide.not_sSameSideₓ'. -/
theorem SOppSide.not_sSameSide {s : AffineSubspace R P} {x y : P} (h : s.SOppSide x y) :
¬s.SSameSide x y := fun hs => h.not_wSameSide hs.1
#align affine_subspace.s_opp_side.not_s_same_side AffineSubspace.SOppSide.not_sSameSide
+/- warning: affine_subspace.w_opp_side_iff_exists_wbtw -> AffineSubspace.wOppSide_iff_exists_wbtw is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, Iff (AffineSubspace.WOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) (Exists.{succ u3} P (fun (p : P) => Exists.{0} (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p s) (fun (H : Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p s) => Wbtw.{u1, u2, u3} R V P (StrictOrderedRing.toOrderedRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)))) _inst_2 _inst_3 _inst_4 x p y)))
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, Iff (AffineSubspace.WOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) (Exists.{succ u1} P (fun (p : P) => And (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) p s) (Wbtw.{u3, u2, u1} R V P (OrderedCommRing.toOrderedRing.{u3} R (StrictOrderedCommRing.toOrderedCommRing.{u3} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)))) _inst_2 _inst_3 _inst_4 x p y)))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.w_opp_side_iff_exists_wbtw AffineSubspace.wOppSide_iff_exists_wbtwₓ'. -/
theorem wOppSide_iff_exists_wbtw {s : AffineSubspace R P} {x y : P} :
s.WOppSide x y ↔ ∃ p ∈ s, Wbtw R x p y :=
by
- refine' ⟨fun h => _, fun ⟨p, hp, h⟩ => h.w_opp_side₁₃ hp⟩
+ refine' ⟨fun h => _, fun ⟨p, hp, h⟩ => h.wOppSide₁₃ hp⟩
rcases h with ⟨p₁, hp₁, p₂, hp₂, h | h | ⟨r₁, r₂, hr₁, hr₂, h⟩⟩
· rw [vsub_eq_zero_iff_eq] at h
rw [h]
@@ -722,6 +1294,12 @@ theorem wOppSide_iff_exists_wbtw {s : AffineSubspace R P} {x y : P} :
div_le_one_of_le (le_add_of_nonneg_left hr₁.le) (Left.add_pos hr₁ hr₂).le⟩
#align affine_subspace.w_opp_side_iff_exists_wbtw AffineSubspace.wOppSide_iff_exists_wbtw
+/- warning: affine_subspace.s_opp_side.exists_sbtw -> AffineSubspace.SOppSide.exists_sbtw is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.SOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (Exists.{succ u3} P (fun (p : P) => Exists.{0} (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p s) (fun (H : Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p s) => Sbtw.{u1, u2, u3} R V P (StrictOrderedRing.toOrderedRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)))) _inst_2 _inst_3 _inst_4 x p y)))
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (AffineSubspace.SOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y) -> (Exists.{succ u1} P (fun (p : P) => And (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) p s) (Sbtw.{u3, u2, u1} R V P (OrderedCommRing.toOrderedRing.{u3} R (StrictOrderedCommRing.toOrderedCommRing.{u3} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)))) _inst_2 _inst_3 _inst_4 x p y)))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.s_opp_side.exists_sbtw AffineSubspace.SOppSide.exists_sbtwₓ'. -/
theorem SOppSide.exists_sbtw {s : AffineSubspace R P} {x y : P} (h : s.SOppSide x y) :
∃ p ∈ s, Sbtw R x p y :=
by
@@ -733,6 +1311,12 @@ theorem SOppSide.exists_sbtw {s : AffineSubspace R P} {x y : P} (h : s.SOppSide
exact h.2.2 hp
#align affine_subspace.s_opp_side.exists_sbtw AffineSubspace.SOppSide.exists_sbtw
+/- warning: sbtw.s_opp_side_of_not_mem_of_mem -> Sbtw.sOppSide_of_not_mem_of_mem is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (Sbtw.{u1, u2, u3} R V P (StrictOrderedRing.toOrderedRing.{u1} R (LinearOrderedRing.toStrictOrderedRing.{u1} R (LinearOrderedCommRing.toLinearOrderedRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)))) _inst_2 _inst_3 _inst_4 x y z) -> (Not (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s)) -> (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s) -> (AffineSubspace.SOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P} {z : P}, (Sbtw.{u3, u2, u1} R V P (OrderedCommRing.toOrderedRing.{u3} R (StrictOrderedCommRing.toOrderedCommRing.{u3} R (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)))) _inst_2 _inst_3 _inst_4 x y z) -> (Not (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s)) -> (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s) -> (AffineSubspace.SOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x z)
+Case conversion may be inaccurate. Consider using '#align sbtw.s_opp_side_of_not_mem_of_mem Sbtw.sOppSide_of_not_mem_of_memₓ'. -/
theorem Sbtw.sOppSide_of_not_mem_of_mem {s : AffineSubspace R P} {x y z : P} (h : Sbtw R x y z)
(hx : x ∉ s) (hy : y ∈ s) : s.SOppSide x z :=
by
@@ -748,6 +1332,12 @@ theorem Sbtw.sOppSide_of_not_mem_of_mem {s : AffineSubspace R P} {x y z : P} (h
rwa [vadd_mem_iff_mem_of_mem_direction (Submodule.smul_mem _ _ hy')] at hy
#align sbtw.s_opp_side_of_not_mem_of_mem Sbtw.sOppSide_of_not_mem_of_mem
+/- warning: affine_subspace.s_same_side_smul_vsub_vadd_left -> AffineSubspace.sSameSide_smul_vsub_vadd_left is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {p₁ : P} {p₂ : P}, (Not (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s)) -> (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₁ s) -> (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₂ s) -> (forall {t : R}, (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))))))))))) t) -> (AffineSubspace.SSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s (VAdd.vadd.{u2, u3} V P (AddAction.toHasVadd.{u2, u3} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4)) (SMul.smul.{u1, u2} R V (SMulZeroClass.toHasSmul.{u1, u2} R V (AddZeroClass.toHasZero.{u2} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R V (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} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R V (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} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3)))) t (VSub.vsub.{u2, u3} V P (AddTorsor.toHasVsub.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p₁)) p₂) x))
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {p₁ : P} {p₂ : P}, (Not (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s)) -> (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₁ s) -> (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₂ s) -> (forall {t : R}, (LT.lt.{u3} R (Preorder.toLT.{u3} R (PartialOrder.toPreorder.{u3} R (StrictOrderedRing.toPartialOrder.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)))))) (OfNat.ofNat.{u3} R 0 (Zero.toOfNat0.{u3} R (CommMonoidWithZero.toZero.{u3} R (CommGroupWithZero.toCommMonoidWithZero.{u3} R (Semifield.toCommGroupWithZero.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1))))))) t) -> (AffineSubspace.SSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s (HVAdd.hVAdd.{u2, u1, u1} V P P (instHVAdd.{u2, u1} V P (AddAction.toVAdd.{u2, u1} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4))) (HSMul.hSMul.{u3, u2, u2} R V V (instHSMul.{u3, u2} R V (SMulZeroClass.toSMul.{u3, u2} R V (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (SMulWithZero.toSMulZeroClass.{u3, u2} R V (CommMonoidWithZero.toZero.{u3} R (CommGroupWithZero.toCommMonoidWithZero.{u3} R (Semifield.toCommGroupWithZero.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1))))) (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (MulActionWithZero.toSMulWithZero.{u3, u2} R V (Semiring.toMonoidWithZero.{u3} R (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1))))) (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (Module.toMulActionWithZero.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3))))) t (VSub.vsub.{u2, u1} V P (AddTorsor.toVSub.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p₁)) p₂) x))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.s_same_side_smul_vsub_vadd_left AffineSubspace.sSameSide_smul_vsub_vadd_leftₓ'. -/
theorem sSameSide_smul_vsub_vadd_left {s : AffineSubspace R P} {x p₁ p₂ : P} (hx : x ∉ s)
(hp₁ : p₁ ∈ s) (hp₂ : p₂ ∈ s) {t : R} (ht : 0 < t) : s.SSameSide (t • (x -ᵥ p₁) +ᵥ p₂) x :=
by
@@ -756,21 +1346,45 @@ theorem sSameSide_smul_vsub_vadd_left {s : AffineSubspace R P} {x p₁ p₂ : P}
vsub_right_mem_direction_iff_mem hp₁] at h
#align affine_subspace.s_same_side_smul_vsub_vadd_left AffineSubspace.sSameSide_smul_vsub_vadd_left
+/- warning: affine_subspace.s_same_side_smul_vsub_vadd_right -> AffineSubspace.sSameSide_smul_vsub_vadd_right is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {p₁ : P} {p₂ : P}, (Not (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s)) -> (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₁ s) -> (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₂ s) -> (forall {t : R}, (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))))))))))) t) -> (AffineSubspace.SSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x (VAdd.vadd.{u2, u3} V P (AddAction.toHasVadd.{u2, u3} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4)) (SMul.smul.{u1, u2} R V (SMulZeroClass.toHasSmul.{u1, u2} R V (AddZeroClass.toHasZero.{u2} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R V (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} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R V (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} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3)))) t (VSub.vsub.{u2, u3} V P (AddTorsor.toHasVsub.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p₁)) p₂)))
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {p₁ : P} {p₂ : P}, (Not (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s)) -> (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₁ s) -> (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₂ s) -> (forall {t : R}, (LT.lt.{u3} R (Preorder.toLT.{u3} R (PartialOrder.toPreorder.{u3} R (StrictOrderedRing.toPartialOrder.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)))))) (OfNat.ofNat.{u3} R 0 (Zero.toOfNat0.{u3} R (CommMonoidWithZero.toZero.{u3} R (CommGroupWithZero.toCommMonoidWithZero.{u3} R (Semifield.toCommGroupWithZero.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1))))))) t) -> (AffineSubspace.SSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x (HVAdd.hVAdd.{u2, u1, u1} V P P (instHVAdd.{u2, u1} V P (AddAction.toVAdd.{u2, u1} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4))) (HSMul.hSMul.{u3, u2, u2} R V V (instHSMul.{u3, u2} R V (SMulZeroClass.toSMul.{u3, u2} R V (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (SMulWithZero.toSMulZeroClass.{u3, u2} R V (CommMonoidWithZero.toZero.{u3} R (CommGroupWithZero.toCommMonoidWithZero.{u3} R (Semifield.toCommGroupWithZero.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1))))) (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (MulActionWithZero.toSMulWithZero.{u3, u2} R V (Semiring.toMonoidWithZero.{u3} R (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1))))) (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (Module.toMulActionWithZero.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3))))) t (VSub.vsub.{u2, u1} V P (AddTorsor.toVSub.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p₁)) p₂)))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.s_same_side_smul_vsub_vadd_right AffineSubspace.sSameSide_smul_vsub_vadd_rightₓ'. -/
theorem sSameSide_smul_vsub_vadd_right {s : AffineSubspace R P} {x p₁ p₂ : P} (hx : x ∉ s)
(hp₁ : p₁ ∈ s) (hp₂ : p₂ ∈ s) {t : R} (ht : 0 < t) : s.SSameSide x (t • (x -ᵥ p₁) +ᵥ p₂) :=
(sSameSide_smul_vsub_vadd_left hx hp₁ hp₂ ht).symm
#align affine_subspace.s_same_side_smul_vsub_vadd_right AffineSubspace.sSameSide_smul_vsub_vadd_right
+/- warning: affine_subspace.s_same_side_line_map_left -> AffineSubspace.sSameSide_lineMap_left is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s) -> (Not (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s)) -> (forall {t : R}, (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))))))))))) t) -> (AffineSubspace.SSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s (coeFn.{max (succ u1) (succ u2) (succ u3), max (succ u1) (succ u3)} (AffineMap.{u1, u1, u1, u2, u3} R R R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (addGroupIsAddTorsor.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))) _inst_2 _inst_3 _inst_4) (fun (_x : AffineMap.{u1, u1, u1, u2, u3} R R R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (addGroupIsAddTorsor.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))) _inst_2 _inst_3 _inst_4) => R -> P) (AffineMap.hasCoeToFun.{u1, u1, u1, u2, u3} R R R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (addGroupIsAddTorsor.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))) _inst_2 _inst_3 _inst_4) (AffineMap.lineMap.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4 x y) t) y))
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s) -> (Not (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s)) -> (forall {t : R}, (LT.lt.{u3} R (Preorder.toLT.{u3} R (PartialOrder.toPreorder.{u3} R (StrictOrderedRing.toPartialOrder.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)))))) (OfNat.ofNat.{u3} R 0 (Zero.toOfNat0.{u3} R (CommMonoidWithZero.toZero.{u3} R (CommGroupWithZero.toCommMonoidWithZero.{u3} R (Semifield.toCommGroupWithZero.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1))))))) t) -> (AffineSubspace.SSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), succ u3, succ u1} (AffineMap.{u3, u3, u3, u2, u1} R R R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) (Ring.toAddCommGroup.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1)))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))))) (addGroupIsAddTorsor.{u3} R (AddGroupWithOne.toAddGroup.{u3} R (Ring.toAddGroupWithOne.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1)))))) _inst_2 _inst_3 _inst_4) R (fun (_x : R) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : R) => P) _x) (AffineMap.funLike.{u3, u3, u3, u2, u1} R R R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) (Ring.toAddCommGroup.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1)))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))))) (addGroupIsAddTorsor.{u3} R (AddGroupWithOne.toAddGroup.{u3} R (Ring.toAddGroupWithOne.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1)))))) _inst_2 _inst_3 _inst_4) (AffineMap.lineMap.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4 x y) t) y))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.s_same_side_line_map_left AffineSubspace.sSameSide_lineMap_leftₓ'. -/
theorem sSameSide_lineMap_left {s : AffineSubspace R P} {x y : P} (hx : x ∈ s) (hy : y ∉ s) {t : R}
(ht : 0 < t) : s.SSameSide (lineMap x y t) y :=
sSameSide_smul_vsub_vadd_left hy hx hx ht
#align affine_subspace.s_same_side_line_map_left AffineSubspace.sSameSide_lineMap_left
+/- warning: affine_subspace.s_same_side_line_map_right -> AffineSubspace.sSameSide_lineMap_right is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s) -> (Not (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s)) -> (forall {t : R}, (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))))))))))) t) -> (AffineSubspace.SSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s y (coeFn.{max (succ u1) (succ u2) (succ u3), max (succ u1) (succ u3)} (AffineMap.{u1, u1, u1, u2, u3} R R R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (addGroupIsAddTorsor.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))) _inst_2 _inst_3 _inst_4) (fun (_x : AffineMap.{u1, u1, u1, u2, u3} R R R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (addGroupIsAddTorsor.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))) _inst_2 _inst_3 _inst_4) => R -> P) (AffineMap.hasCoeToFun.{u1, u1, u1, u2, u3} R R R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (addGroupIsAddTorsor.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))) _inst_2 _inst_3 _inst_4) (AffineMap.lineMap.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4 x y) t)))
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s) -> (Not (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s)) -> (forall {t : R}, (LT.lt.{u3} R (Preorder.toLT.{u3} R (PartialOrder.toPreorder.{u3} R (StrictOrderedRing.toPartialOrder.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)))))) (OfNat.ofNat.{u3} R 0 (Zero.toOfNat0.{u3} R (CommMonoidWithZero.toZero.{u3} R (CommGroupWithZero.toCommMonoidWithZero.{u3} R (Semifield.toCommGroupWithZero.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1))))))) t) -> (AffineSubspace.SSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s y (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), succ u3, succ u1} (AffineMap.{u3, u3, u3, u2, u1} R R R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) (Ring.toAddCommGroup.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1)))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))))) (addGroupIsAddTorsor.{u3} R (AddGroupWithOne.toAddGroup.{u3} R (Ring.toAddGroupWithOne.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1)))))) _inst_2 _inst_3 _inst_4) R (fun (_x : R) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : R) => P) _x) (AffineMap.funLike.{u3, u3, u3, u2, u1} R R R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) (Ring.toAddCommGroup.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1)))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))))) (addGroupIsAddTorsor.{u3} R (AddGroupWithOne.toAddGroup.{u3} R (Ring.toAddGroupWithOne.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1)))))) _inst_2 _inst_3 _inst_4) (AffineMap.lineMap.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4 x y) t)))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.s_same_side_line_map_right AffineSubspace.sSameSide_lineMap_rightₓ'. -/
theorem sSameSide_lineMap_right {s : AffineSubspace R P} {x y : P} (hx : x ∈ s) (hy : y ∉ s) {t : R}
(ht : 0 < t) : s.SSameSide y (lineMap x y t) :=
(sSameSide_lineMap_left hx hy ht).symm
#align affine_subspace.s_same_side_line_map_right AffineSubspace.sSameSide_lineMap_right
+/- warning: affine_subspace.s_opp_side_smul_vsub_vadd_left -> AffineSubspace.sOppSide_smul_vsub_vadd_left is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {p₁ : P} {p₂ : P}, (Not (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s)) -> (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₁ s) -> (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₂ s) -> (forall {t : R}, (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))))))) t (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)))))))))))) -> (AffineSubspace.SOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s (VAdd.vadd.{u2, u3} V P (AddAction.toHasVadd.{u2, u3} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4)) (SMul.smul.{u1, u2} R V (SMulZeroClass.toHasSmul.{u1, u2} R V (AddZeroClass.toHasZero.{u2} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R V (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} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R V (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} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3)))) t (VSub.vsub.{u2, u3} V P (AddTorsor.toHasVsub.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p₁)) p₂) x))
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {p₁ : P} {p₂ : P}, (Not (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s)) -> (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₁ s) -> (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₂ s) -> (forall {t : R}, (LT.lt.{u3} R (Preorder.toLT.{u3} R (PartialOrder.toPreorder.{u3} R (StrictOrderedRing.toPartialOrder.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)))))) t (OfNat.ofNat.{u3} R 0 (Zero.toOfNat0.{u3} R (CommMonoidWithZero.toZero.{u3} R (CommGroupWithZero.toCommMonoidWithZero.{u3} R (Semifield.toCommGroupWithZero.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))))))) -> (AffineSubspace.SOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s (HVAdd.hVAdd.{u2, u1, u1} V P P (instHVAdd.{u2, u1} V P (AddAction.toVAdd.{u2, u1} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4))) (HSMul.hSMul.{u3, u2, u2} R V V (instHSMul.{u3, u2} R V (SMulZeroClass.toSMul.{u3, u2} R V (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (SMulWithZero.toSMulZeroClass.{u3, u2} R V (CommMonoidWithZero.toZero.{u3} R (CommGroupWithZero.toCommMonoidWithZero.{u3} R (Semifield.toCommGroupWithZero.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1))))) (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (MulActionWithZero.toSMulWithZero.{u3, u2} R V (Semiring.toMonoidWithZero.{u3} R (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1))))) (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (Module.toMulActionWithZero.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3))))) t (VSub.vsub.{u2, u1} V P (AddTorsor.toVSub.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p₁)) p₂) x))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.s_opp_side_smul_vsub_vadd_left AffineSubspace.sOppSide_smul_vsub_vadd_leftₓ'. -/
theorem sOppSide_smul_vsub_vadd_left {s : AffineSubspace R P} {x p₁ p₂ : P} (hx : x ∉ s)
(hp₁ : p₁ ∈ s) (hp₂ : p₂ ∈ s) {t : R} (ht : t < 0) : s.SOppSide (t • (x -ᵥ p₁) +ᵥ p₂) x :=
by
@@ -779,21 +1393,45 @@ theorem sOppSide_smul_vsub_vadd_left {s : AffineSubspace R P} {x p₁ p₂ : P}
vsub_right_mem_direction_iff_mem hp₁] at h
#align affine_subspace.s_opp_side_smul_vsub_vadd_left AffineSubspace.sOppSide_smul_vsub_vadd_left
+/- warning: affine_subspace.s_opp_side_smul_vsub_vadd_right -> AffineSubspace.sOppSide_smul_vsub_vadd_right is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {p₁ : P} {p₂ : P}, (Not (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s)) -> (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₁ s) -> (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₂ s) -> (forall {t : R}, (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))))))) t (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)))))))))))) -> (AffineSubspace.SOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x (VAdd.vadd.{u2, u3} V P (AddAction.toHasVadd.{u2, u3} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4)) (SMul.smul.{u1, u2} R V (SMulZeroClass.toHasSmul.{u1, u2} R V (AddZeroClass.toHasZero.{u2} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R V (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} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R V (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} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3)))) t (VSub.vsub.{u2, u3} V P (AddTorsor.toHasVsub.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p₁)) p₂)))
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {p₁ : P} {p₂ : P}, (Not (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s)) -> (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₁ s) -> (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) p₂ s) -> (forall {t : R}, (LT.lt.{u3} R (Preorder.toLT.{u3} R (PartialOrder.toPreorder.{u3} R (StrictOrderedRing.toPartialOrder.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)))))) t (OfNat.ofNat.{u3} R 0 (Zero.toOfNat0.{u3} R (CommMonoidWithZero.toZero.{u3} R (CommGroupWithZero.toCommMonoidWithZero.{u3} R (Semifield.toCommGroupWithZero.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))))))) -> (AffineSubspace.SOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x (HVAdd.hVAdd.{u2, u1, u1} V P P (instHVAdd.{u2, u1} V P (AddAction.toVAdd.{u2, u1} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4))) (HSMul.hSMul.{u3, u2, u2} R V V (instHSMul.{u3, u2} R V (SMulZeroClass.toSMul.{u3, u2} R V (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (SMulWithZero.toSMulZeroClass.{u3, u2} R V (CommMonoidWithZero.toZero.{u3} R (CommGroupWithZero.toCommMonoidWithZero.{u3} R (Semifield.toCommGroupWithZero.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1))))) (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (MulActionWithZero.toSMulWithZero.{u3, u2} R V (Semiring.toMonoidWithZero.{u3} R (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1))))) (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (Module.toMulActionWithZero.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3))))) t (VSub.vsub.{u2, u1} V P (AddTorsor.toVSub.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p₁)) p₂)))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.s_opp_side_smul_vsub_vadd_right AffineSubspace.sOppSide_smul_vsub_vadd_rightₓ'. -/
theorem sOppSide_smul_vsub_vadd_right {s : AffineSubspace R P} {x p₁ p₂ : P} (hx : x ∉ s)
(hp₁ : p₁ ∈ s) (hp₂ : p₂ ∈ s) {t : R} (ht : t < 0) : s.SOppSide x (t • (x -ᵥ p₁) +ᵥ p₂) :=
(sOppSide_smul_vsub_vadd_left hx hp₁ hp₂ ht).symm
#align affine_subspace.s_opp_side_smul_vsub_vadd_right AffineSubspace.sOppSide_smul_vsub_vadd_right
+/- warning: affine_subspace.s_opp_side_line_map_left -> AffineSubspace.sOppSide_lineMap_left is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s) -> (Not (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s)) -> (forall {t : R}, (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))))))) t (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)))))))))))) -> (AffineSubspace.SOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s (coeFn.{max (succ u1) (succ u2) (succ u3), max (succ u1) (succ u3)} (AffineMap.{u1, u1, u1, u2, u3} R R R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (addGroupIsAddTorsor.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))) _inst_2 _inst_3 _inst_4) (fun (_x : AffineMap.{u1, u1, u1, u2, u3} R R R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (addGroupIsAddTorsor.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))) _inst_2 _inst_3 _inst_4) => R -> P) (AffineMap.hasCoeToFun.{u1, u1, u1, u2, u3} R R R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (addGroupIsAddTorsor.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))) _inst_2 _inst_3 _inst_4) (AffineMap.lineMap.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4 x y) t) y))
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s) -> (Not (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s)) -> (forall {t : R}, (LT.lt.{u3} R (Preorder.toLT.{u3} R (PartialOrder.toPreorder.{u3} R (StrictOrderedRing.toPartialOrder.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)))))) t (OfNat.ofNat.{u3} R 0 (Zero.toOfNat0.{u3} R (CommMonoidWithZero.toZero.{u3} R (CommGroupWithZero.toCommMonoidWithZero.{u3} R (Semifield.toCommGroupWithZero.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))))))) -> (AffineSubspace.SOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), succ u3, succ u1} (AffineMap.{u3, u3, u3, u2, u1} R R R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) (Ring.toAddCommGroup.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1)))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))))) (addGroupIsAddTorsor.{u3} R (AddGroupWithOne.toAddGroup.{u3} R (Ring.toAddGroupWithOne.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1)))))) _inst_2 _inst_3 _inst_4) R (fun (_x : R) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : R) => P) _x) (AffineMap.funLike.{u3, u3, u3, u2, u1} R R R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) (Ring.toAddCommGroup.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1)))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))))) (addGroupIsAddTorsor.{u3} R (AddGroupWithOne.toAddGroup.{u3} R (Ring.toAddGroupWithOne.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1)))))) _inst_2 _inst_3 _inst_4) (AffineMap.lineMap.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4 x y) t) y))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.s_opp_side_line_map_left AffineSubspace.sOppSide_lineMap_leftₓ'. -/
theorem sOppSide_lineMap_left {s : AffineSubspace R P} {x y : P} (hx : x ∈ s) (hy : y ∉ s) {t : R}
(ht : t < 0) : s.SOppSide (lineMap x y t) y :=
sOppSide_smul_vsub_vadd_left hy hx hx ht
#align affine_subspace.s_opp_side_line_map_left AffineSubspace.sOppSide_lineMap_left
+/- warning: affine_subspace.s_opp_side_line_map_right -> AffineSubspace.sOppSide_lineMap_right is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s) -> (Not (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s)) -> (forall {t : R}, (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))))))) t (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)))))))))))) -> (AffineSubspace.SOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s y (coeFn.{max (succ u1) (succ u2) (succ u3), max (succ u1) (succ u3)} (AffineMap.{u1, u1, u1, u2, u3} R R R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (addGroupIsAddTorsor.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))) _inst_2 _inst_3 _inst_4) (fun (_x : AffineMap.{u1, u1, u1, u2, u3} R R R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (addGroupIsAddTorsor.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))) _inst_2 _inst_3 _inst_4) => R -> P) (AffineMap.hasCoeToFun.{u1, u1, u1, u2, u3} R R R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))))) (Semiring.toModule.{u1} R (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))) (addGroupIsAddTorsor.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))))))) _inst_2 _inst_3 _inst_4) (AffineMap.lineMap.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4 x y) t)))
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s) -> (Not (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s)) -> (forall {t : R}, (LT.lt.{u3} R (Preorder.toLT.{u3} R (PartialOrder.toPreorder.{u3} R (StrictOrderedRing.toPartialOrder.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)))))) t (OfNat.ofNat.{u3} R 0 (Zero.toOfNat0.{u3} R (CommMonoidWithZero.toZero.{u3} R (CommGroupWithZero.toCommMonoidWithZero.{u3} R (Semifield.toCommGroupWithZero.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))))))) -> (AffineSubspace.SOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s y (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), succ u3, succ u1} (AffineMap.{u3, u3, u3, u2, u1} R R R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) (Ring.toAddCommGroup.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1)))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))))) (addGroupIsAddTorsor.{u3} R (AddGroupWithOne.toAddGroup.{u3} R (Ring.toAddGroupWithOne.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1)))))) _inst_2 _inst_3 _inst_4) R (fun (_x : R) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : R) => P) _x) (AffineMap.funLike.{u3, u3, u3, u2, u1} R R R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) (Ring.toAddCommGroup.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1)))) (Semiring.toModule.{u3} R (Ring.toSemiring.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))))) (addGroupIsAddTorsor.{u3} R (AddGroupWithOne.toAddGroup.{u3} R (Ring.toAddGroupWithOne.{u3} R (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1)))))) _inst_2 _inst_3 _inst_4) (AffineMap.lineMap.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4 x y) t)))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.s_opp_side_line_map_right AffineSubspace.sOppSide_lineMap_rightₓ'. -/
theorem sOppSide_lineMap_right {s : AffineSubspace R P} {x y : P} (hx : x ∈ s) (hy : y ∉ s) {t : R}
(ht : t < 0) : s.SOppSide y (lineMap x y t) :=
(sOppSide_lineMap_left hx hy ht).symm
#align affine_subspace.s_opp_side_line_map_right AffineSubspace.sOppSide_lineMap_right
+/- warning: affine_subspace.set_of_w_same_side_eq_image2 -> AffineSubspace.setOf_wSameSide_eq_image2 is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {p : P}, (Not (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s)) -> (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p s) -> (Eq.{succ u3} (Set.{u3} P) (setOf.{u3} P (fun (y : P) => AffineSubspace.WSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y)) (Set.image2.{u1, u3, u3} R P P (fun (t : R) (q : P) => VAdd.vadd.{u2, u3} V P (AddAction.toHasVadd.{u2, u3} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4)) (SMul.smul.{u1, u2} R V (SMulZeroClass.toHasSmul.{u1, u2} R V (AddZeroClass.toHasZero.{u2} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R V (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} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R V (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} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3)))) t (VSub.vsub.{u2, u3} V P (AddTorsor.toHasVsub.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p)) q) (Set.Ici.{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)))))))))))) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (Set.{u3} P) (HasLiftT.mk.{succ u3, succ u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (Set.{u3} P) (CoeTCₓ.coe.{succ u3, succ u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (Set.{u3} P) (SetLike.Set.hasCoeT.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)))) s)))
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {p : P}, (Not (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s)) -> (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) p s) -> (Eq.{succ u1} (Set.{u1} P) (setOf.{u1} P (fun (y : P) => AffineSubspace.WSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y)) (Set.image2.{u3, u1, u1} R P P (fun (t : R) (q : P) => HVAdd.hVAdd.{u2, u1, u1} V P P (instHVAdd.{u2, u1} V P (AddAction.toVAdd.{u2, u1} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4))) (HSMul.hSMul.{u3, u2, u2} R V V (instHSMul.{u3, u2} R V (SMulZeroClass.toSMul.{u3, u2} R V (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (SMulWithZero.toSMulZeroClass.{u3, u2} R V (CommMonoidWithZero.toZero.{u3} R (CommGroupWithZero.toCommMonoidWithZero.{u3} R (Semifield.toCommGroupWithZero.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1))))) (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (MulActionWithZero.toSMulWithZero.{u3, u2} R V (Semiring.toMonoidWithZero.{u3} R (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1))))) (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (Module.toMulActionWithZero.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3))))) t (VSub.vsub.{u2, u1} V P (AddTorsor.toVSub.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p)) q) (Set.Ici.{u3} R (PartialOrder.toPreorder.{u3} R (StrictOrderedRing.toPartialOrder.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1))))) (OfNat.ofNat.{u3} R 0 (Zero.toOfNat0.{u3} R (CommMonoidWithZero.toZero.{u3} R (CommGroupWithZero.toCommMonoidWithZero.{u3} R (Semifield.toCommGroupWithZero.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))))))) (SetLike.coe.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) s)))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.set_of_w_same_side_eq_image2 AffineSubspace.setOf_wSameSide_eq_image2ₓ'. -/
theorem setOf_wSameSide_eq_image2 {s : AffineSubspace R P} {x p : P} (hx : x ∉ s) (hp : p ∈ s) :
{ y | s.WSameSide x y } = Set.image2 (fun (t : R) q => t • (x -ᵥ p) +ᵥ q) (Set.Ici 0) s :=
by
@@ -814,6 +1452,12 @@ theorem setOf_wSameSide_eq_image2 {s : AffineSubspace R P} {x p : P} (hx : x ∉
exact w_same_side_smul_vsub_vadd_right x hp hp' ht
#align affine_subspace.set_of_w_same_side_eq_image2 AffineSubspace.setOf_wSameSide_eq_image2
+/- warning: affine_subspace.set_of_s_same_side_eq_image2 -> AffineSubspace.setOf_sSameSide_eq_image2 is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {p : P}, (Not (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s)) -> (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p s) -> (Eq.{succ u3} (Set.{u3} P) (setOf.{u3} P (fun (y : P) => AffineSubspace.SSameSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y)) (Set.image2.{u1, u3, u3} R P P (fun (t : R) (q : P) => VAdd.vadd.{u2, u3} V P (AddAction.toHasVadd.{u2, u3} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4)) (SMul.smul.{u1, u2} R V (SMulZeroClass.toHasSmul.{u1, u2} R V (AddZeroClass.toHasZero.{u2} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R V (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} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R V (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} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3)))) t (VSub.vsub.{u2, u3} V P (AddTorsor.toHasVsub.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p)) q) (Set.Ioi.{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)))))))))))) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (Set.{u3} P) (HasLiftT.mk.{succ u3, succ u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (Set.{u3} P) (CoeTCₓ.coe.{succ u3, succ u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (Set.{u3} P) (SetLike.Set.hasCoeT.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)))) s)))
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {p : P}, (Not (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s)) -> (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) p s) -> (Eq.{succ u1} (Set.{u1} P) (setOf.{u1} P (fun (y : P) => AffineSubspace.SSameSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y)) (Set.image2.{u3, u1, u1} R P P (fun (t : R) (q : P) => HVAdd.hVAdd.{u2, u1, u1} V P P (instHVAdd.{u2, u1} V P (AddAction.toVAdd.{u2, u1} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4))) (HSMul.hSMul.{u3, u2, u2} R V V (instHSMul.{u3, u2} R V (SMulZeroClass.toSMul.{u3, u2} R V (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (SMulWithZero.toSMulZeroClass.{u3, u2} R V (CommMonoidWithZero.toZero.{u3} R (CommGroupWithZero.toCommMonoidWithZero.{u3} R (Semifield.toCommGroupWithZero.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1))))) (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (MulActionWithZero.toSMulWithZero.{u3, u2} R V (Semiring.toMonoidWithZero.{u3} R (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1))))) (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (Module.toMulActionWithZero.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3))))) t (VSub.vsub.{u2, u1} V P (AddTorsor.toVSub.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p)) q) (Set.Ioi.{u3} R (PartialOrder.toPreorder.{u3} R (StrictOrderedRing.toPartialOrder.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1))))) (OfNat.ofNat.{u3} R 0 (Zero.toOfNat0.{u3} R (CommMonoidWithZero.toZero.{u3} R (CommGroupWithZero.toCommMonoidWithZero.{u3} R (Semifield.toCommGroupWithZero.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))))))) (SetLike.coe.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) s)))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.set_of_s_same_side_eq_image2 AffineSubspace.setOf_sSameSide_eq_image2ₓ'. -/
theorem setOf_sSameSide_eq_image2 {s : AffineSubspace R P} {x p : P} (hx : x ∉ s) (hp : p ∈ s) :
{ y | s.SSameSide x y } = Set.image2 (fun (t : R) q => t • (x -ᵥ p) +ᵥ q) (Set.Ioi 0) s :=
by
@@ -833,6 +1477,12 @@ theorem setOf_sSameSide_eq_image2 {s : AffineSubspace R P} {x p : P} (hx : x ∉
exact s_same_side_smul_vsub_vadd_right hx hp hp' ht
#align affine_subspace.set_of_s_same_side_eq_image2 AffineSubspace.setOf_sSameSide_eq_image2
+/- warning: affine_subspace.set_of_w_opp_side_eq_image2 -> AffineSubspace.setOf_wOppSide_eq_image2 is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {p : P}, (Not (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s)) -> (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p s) -> (Eq.{succ u3} (Set.{u3} P) (setOf.{u3} P (fun (y : P) => AffineSubspace.WOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y)) (Set.image2.{u1, u3, u3} R P P (fun (t : R) (q : P) => VAdd.vadd.{u2, u3} V P (AddAction.toHasVadd.{u2, u3} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4)) (SMul.smul.{u1, u2} R V (SMulZeroClass.toHasSmul.{u1, u2} R V (AddZeroClass.toHasZero.{u2} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R V (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} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R V (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} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3)))) t (VSub.vsub.{u2, u3} V P (AddTorsor.toHasVsub.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p)) q) (Set.Iic.{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)))))))))))) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (Set.{u3} P) (HasLiftT.mk.{succ u3, succ u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (Set.{u3} P) (CoeTCₓ.coe.{succ u3, succ u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (Set.{u3} P) (SetLike.Set.hasCoeT.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)))) s)))
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {p : P}, (Not (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s)) -> (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) p s) -> (Eq.{succ u1} (Set.{u1} P) (setOf.{u1} P (fun (y : P) => AffineSubspace.WOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y)) (Set.image2.{u3, u1, u1} R P P (fun (t : R) (q : P) => HVAdd.hVAdd.{u2, u1, u1} V P P (instHVAdd.{u2, u1} V P (AddAction.toVAdd.{u2, u1} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4))) (HSMul.hSMul.{u3, u2, u2} R V V (instHSMul.{u3, u2} R V (SMulZeroClass.toSMul.{u3, u2} R V (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (SMulWithZero.toSMulZeroClass.{u3, u2} R V (CommMonoidWithZero.toZero.{u3} R (CommGroupWithZero.toCommMonoidWithZero.{u3} R (Semifield.toCommGroupWithZero.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1))))) (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (MulActionWithZero.toSMulWithZero.{u3, u2} R V (Semiring.toMonoidWithZero.{u3} R (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1))))) (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (Module.toMulActionWithZero.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3))))) t (VSub.vsub.{u2, u1} V P (AddTorsor.toVSub.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p)) q) (Set.Iic.{u3} R (PartialOrder.toPreorder.{u3} R (StrictOrderedRing.toPartialOrder.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1))))) (OfNat.ofNat.{u3} R 0 (Zero.toOfNat0.{u3} R (CommMonoidWithZero.toZero.{u3} R (CommGroupWithZero.toCommMonoidWithZero.{u3} R (Semifield.toCommGroupWithZero.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))))))) (SetLike.coe.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) s)))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.set_of_w_opp_side_eq_image2 AffineSubspace.setOf_wOppSide_eq_image2ₓ'. -/
theorem setOf_wOppSide_eq_image2 {s : AffineSubspace R P} {x p : P} (hx : x ∉ s) (hp : p ∈ s) :
{ y | s.WOppSide x y } = Set.image2 (fun (t : R) q => t • (x -ᵥ p) +ᵥ q) (Set.Iic 0) s :=
by
@@ -853,6 +1503,12 @@ theorem setOf_wOppSide_eq_image2 {s : AffineSubspace R P} {x p : P} (hx : x ∉
exact w_opp_side_smul_vsub_vadd_right x hp hp' ht
#align affine_subspace.set_of_w_opp_side_eq_image2 AffineSubspace.setOf_wOppSide_eq_image2
+/- warning: affine_subspace.set_of_s_opp_side_eq_image2 -> AffineSubspace.setOf_sOppSide_eq_image2 is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {p : P}, (Not (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s)) -> (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) p s) -> (Eq.{succ u3} (Set.{u3} P) (setOf.{u3} P (fun (y : P) => AffineSubspace.SOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y)) (Set.image2.{u1, u3, u3} R P P (fun (t : R) (q : P) => VAdd.vadd.{u2, u3} V P (AddAction.toHasVadd.{u2, u3} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4)) (SMul.smul.{u1, u2} R V (SMulZeroClass.toHasSmul.{u1, u2} R V (AddZeroClass.toHasZero.{u2} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} R V (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} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} R V (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} V (AddMonoid.toAddZeroClass.{u2} V (AddCommMonoid.toAddMonoid.{u2} V (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)))) (Module.toMulActionWithZero.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3)))) t (VSub.vsub.{u2, u3} V P (AddTorsor.toHasVsub.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p)) q) (Set.Iio.{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)))))))))))) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (Set.{u3} P) (HasLiftT.mk.{succ u3, succ u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (Set.{u3} P) (CoeTCₓ.coe.{succ u3, succ u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (Set.{u3} P) (SetLike.Set.hasCoeT.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)))) s)))
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {p : P}, (Not (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s)) -> (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) p s) -> (Eq.{succ u1} (Set.{u1} P) (setOf.{u1} P (fun (y : P) => AffineSubspace.SOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s x y)) (Set.image2.{u3, u1, u1} R P P (fun (t : R) (q : P) => HVAdd.hVAdd.{u2, u1, u1} V P P (instHVAdd.{u2, u1} V P (AddAction.toVAdd.{u2, u1} V P (SubNegMonoid.toAddMonoid.{u2} V (AddGroup.toSubNegMonoid.{u2} V (AddCommGroup.toAddGroup.{u2} V _inst_2))) (AddTorsor.toAddAction.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4))) (HSMul.hSMul.{u3, u2, u2} R V V (instHSMul.{u3, u2} R V (SMulZeroClass.toSMul.{u3, u2} R V (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (SMulWithZero.toSMulZeroClass.{u3, u2} R V (CommMonoidWithZero.toZero.{u3} R (CommGroupWithZero.toCommMonoidWithZero.{u3} R (Semifield.toCommGroupWithZero.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1))))) (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (MulActionWithZero.toSMulWithZero.{u3, u2} R V (Semiring.toMonoidWithZero.{u3} R (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1))))) (NegZeroClass.toZero.{u2} V (SubNegZeroMonoid.toNegZeroClass.{u2} V (SubtractionMonoid.toSubNegZeroMonoid.{u2} V (SubtractionCommMonoid.toSubtractionMonoid.{u2} V (AddCommGroup.toDivisionAddCommMonoid.{u2} V _inst_2))))) (Module.toMulActionWithZero.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2) _inst_3))))) t (VSub.vsub.{u2, u1} V P (AddTorsor.toVSub.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2) _inst_4) x p)) q) (Set.Iio.{u3} R (PartialOrder.toPreorder.{u3} R (StrictOrderedRing.toPartialOrder.{u3} R (LinearOrderedRing.toStrictOrderedRing.{u3} R (LinearOrderedCommRing.toLinearOrderedRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1))))) (OfNat.ofNat.{u3} R 0 (Zero.toOfNat0.{u3} R (CommMonoidWithZero.toZero.{u3} R (CommGroupWithZero.toCommMonoidWithZero.{u3} R (Semifield.toCommGroupWithZero.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))))))) (SetLike.coe.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) s)))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.set_of_s_opp_side_eq_image2 AffineSubspace.setOf_sOppSide_eq_image2ₓ'. -/
theorem setOf_sOppSide_eq_image2 {s : AffineSubspace R P} {x p : P} (hx : x ∉ s) (hp : p ∈ s) :
{ y | s.SOppSide x y } = Set.image2 (fun (t : R) q => t • (x -ᵥ p) +ᵥ q) (Set.Iio 0) s :=
by
@@ -872,11 +1528,23 @@ theorem setOf_sOppSide_eq_image2 {s : AffineSubspace R P} {x p : P} (hx : x ∉
exact s_opp_side_smul_vsub_vadd_right hx hp hp' ht
#align affine_subspace.set_of_s_opp_side_eq_image2 AffineSubspace.setOf_sOppSide_eq_image2
+/- warning: affine_subspace.w_opp_side_point_reflection -> AffineSubspace.wOppSide_pointReflection is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} (y : P), (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s) -> (AffineSubspace.WOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s y (coeFn.{max (succ u3) (succ u2), succ u3} (AffineEquiv.{u1, u3, u3, u2, u2} R P P V V (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4 _inst_2 _inst_3 _inst_4) (fun (_x : AffineEquiv.{u1, u3, u3, u2, u2} R P P V V (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4 _inst_2 _inst_3 _inst_4) => P -> P) (AffineEquiv.hasCoeToFun.{u1, u3, u3, u2, u2} R P P V V (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4 _inst_2 _inst_3 _inst_4) (AffineEquiv.pointReflection.{u1, u3, u2} R P V (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4 x) y))
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} (y : P), (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s) -> (AffineSubspace.WOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s y (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u1} (AffineEquiv.{u3, u1, u1, u2, u2} R P P V V (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4 _inst_2 _inst_3 _inst_4) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineEquiv._hyg.1470 : P) => P) _x) (EmbeddingLike.toFunLike.{max (succ u1) (succ u2), succ u1, succ u1} (AffineEquiv.{u3, u1, u1, u2, u2} R P P V V (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4 _inst_2 _inst_3 _inst_4) P P (EquivLike.toEmbeddingLike.{max (succ u1) (succ u2), succ u1, succ u1} (AffineEquiv.{u3, u1, u1, u2, u2} R P P V V (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4 _inst_2 _inst_3 _inst_4) P P (AffineEquiv.equivLike.{u3, u1, u1, u2, u2} R P P V V (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4 _inst_2 _inst_3 _inst_4))) (AffineEquiv.pointReflection.{u3, u1, u2} R P V (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4 x) y))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.w_opp_side_point_reflection AffineSubspace.wOppSide_pointReflectionₓ'. -/
theorem wOppSide_pointReflection {s : AffineSubspace R P} {x : P} (y : P) (hx : x ∈ s) :
s.WOppSide y (pointReflection R x y) :=
- (wbtw_pointReflection R _ _).w_opp_side₁₃ hx
+ (wbtw_pointReflection R _ _).wOppSide₁₃ hx
#align affine_subspace.w_opp_side_point_reflection AffineSubspace.wOppSide_pointReflection
+/- warning: affine_subspace.s_opp_side_point_reflection -> AffineSubspace.sOppSide_pointReflection is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} {V : Type.{u2}} {P : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} R V (Ring.toSemiring.{u1} R (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u3} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s) -> (Not (Membership.Mem.{u3, u3} P (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.hasMem.{u3, u3} (AffineSubspace.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.setLike.{u1, u2, u3} R V P (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s)) -> (AffineSubspace.SOppSide.{u1, u2, u3} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u1} R (LinearOrderedField.toLinearOrderedCommRing.{u1} R _inst_1)) _inst_2 _inst_3 _inst_4 s y (coeFn.{max (succ u3) (succ u2), succ u3} (AffineEquiv.{u1, u3, u3, u2, u2} R P P V V (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4 _inst_2 _inst_3 _inst_4) (fun (_x : AffineEquiv.{u1, u3, u3, u2, u2} R P P V V (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4 _inst_2 _inst_3 _inst_4) => P -> P) (AffineEquiv.hasCoeToFun.{u1, u3, u3, u2, u2} R P P V V (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4 _inst_2 _inst_3 _inst_4) (AffineEquiv.pointReflection.{u1, u3, u2} R P V (DivisionRing.toRing.{u1} R (Field.toDivisionRing.{u1} R (LinearOrderedField.toField.{u1} R _inst_1))) _inst_2 _inst_3 _inst_4 x) y))
+but is expected to have type
+ forall {R : Type.{u3}} {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} R] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u3, u2} R V (DivisionSemiring.toSemiring.{u3} R (Semifield.toDivisionSemiring.{u3} R (LinearOrderedSemifield.toSemifield.{u3} R (LinearOrderedField.toLinearOrderedSemifield.{u3} R _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] [_inst_4 : AddTorsor.{u2, u1} V P (AddCommGroup.toAddGroup.{u2} V _inst_2)] {s : AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4} {x : P} {y : P}, (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) x s) -> (Not (Membership.mem.{u1, u1} P (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u1, u1} (AffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4) P (AffineSubspace.instSetLikeAffineSubspace.{u3, u2, u1} R V P (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4)) y s)) -> (AffineSubspace.SOppSide.{u3, u2, u1} R V P (LinearOrderedCommRing.toStrictOrderedCommRing.{u3} R (LinearOrderedField.toLinearOrderedCommRing.{u3} R _inst_1)) _inst_2 _inst_3 _inst_4 s y (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u1} (AffineEquiv.{u3, u1, u1, u2, u2} R P P V V (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4 _inst_2 _inst_3 _inst_4) P (fun (_x : P) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineEquiv._hyg.1470 : P) => P) _x) (EmbeddingLike.toFunLike.{max (succ u1) (succ u2), succ u1, succ u1} (AffineEquiv.{u3, u1, u1, u2, u2} R P P V V (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4 _inst_2 _inst_3 _inst_4) P P (EquivLike.toEmbeddingLike.{max (succ u1) (succ u2), succ u1, succ u1} (AffineEquiv.{u3, u1, u1, u2, u2} R P P V V (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4 _inst_2 _inst_3 _inst_4) P P (AffineEquiv.equivLike.{u3, u1, u1, u2, u2} R P P V V (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4 _inst_2 _inst_3 _inst_4))) (AffineEquiv.pointReflection.{u3, u1, u2} R P V (DivisionRing.toRing.{u3} R (Field.toDivisionRing.{u3} R (LinearOrderedField.toField.{u3} R _inst_1))) _inst_2 _inst_3 _inst_4 x) y))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.s_opp_side_point_reflection AffineSubspace.sOppSide_pointReflectionₓ'. -/
theorem sOppSide_pointReflection {s : AffineSubspace R P} {x y : P} (hx : x ∈ s) (hy : y ∉ s) :
s.SOppSide y (pointReflection R x y) :=
by
@@ -894,6 +1562,12 @@ variable [NormedAddTorsor V P]
include V
+/- warning: affine_subspace.is_connected_set_of_w_same_side -> AffineSubspace.isConnected_setOf_wSameSide is a dubious translation:
+lean 3 declaration is
+ forall {V : Type.{u1}} {P : Type.{u2}} [_inst_1 : SeminormedAddCommGroup.{u1} V] [_inst_2 : NormedSpace.{0, u1} Real V Real.normedField _inst_1] [_inst_3 : PseudoMetricSpace.{u2} P] [_inst_4 : NormedAddTorsor.{u1, u2} V P _inst_1 _inst_3] {s : AffineSubspace.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4)} (x : P), (Set.Nonempty.{u2} P ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (AffineSubspace.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4)) (Set.{u2} P) (HasLiftT.mk.{succ u2, succ u2} (AffineSubspace.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4)) (Set.{u2} P) (CoeTCₓ.coe.{succ u2, succ u2} (AffineSubspace.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4)) (Set.{u2} P) (SetLike.Set.hasCoeT.{u2, u2} (AffineSubspace.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4)) P (AffineSubspace.setLike.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4))))) s)) -> (IsConnected.{u2} P (UniformSpace.toTopologicalSpace.{u2} P (PseudoMetricSpace.toUniformSpace.{u2} P _inst_3)) (setOf.{u2} P (fun (y : P) => AffineSubspace.WSameSide.{0, u1, u2} Real V P Real.strictOrderedCommRing (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4) s x y)))
+but is expected to have type
+ forall {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : SeminormedAddCommGroup.{u2} V] [_inst_2 : NormedSpace.{0, u2} Real V Real.normedField _inst_1] [_inst_3 : PseudoMetricSpace.{u1} P] [_inst_4 : NormedAddTorsor.{u2, u1} V P _inst_1 _inst_3] {s : AffineSubspace.{0, u2, u1} Real V P Real.instRingReal (SeminormedAddCommGroup.toAddCommGroup.{u2} V _inst_1) (NormedSpace.toModule.{0, u2} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u2, u1} V P _inst_1 _inst_3 _inst_4)} (x : P), (Set.Nonempty.{u1} P (SetLike.coe.{u1, u1} (AffineSubspace.{0, u2, u1} Real V P Real.instRingReal (SeminormedAddCommGroup.toAddCommGroup.{u2} V _inst_1) (NormedSpace.toModule.{0, u2} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u2, u1} V P _inst_1 _inst_3 _inst_4)) P (AffineSubspace.instSetLikeAffineSubspace.{0, u2, u1} Real V P Real.instRingReal (SeminormedAddCommGroup.toAddCommGroup.{u2} V _inst_1) (NormedSpace.toModule.{0, u2} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u2, u1} V P _inst_1 _inst_3 _inst_4)) s)) -> (IsConnected.{u1} P (UniformSpace.toTopologicalSpace.{u1} P (PseudoMetricSpace.toUniformSpace.{u1} P _inst_3)) (setOf.{u1} P (fun (y : P) => AffineSubspace.WSameSide.{0, u2, u1} Real V P Real.instStrictOrderedCommRingReal (SeminormedAddCommGroup.toAddCommGroup.{u2} V _inst_1) (NormedSpace.toModule.{0, u2} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u2, u1} V P _inst_1 _inst_3 _inst_4) s x y)))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.is_connected_set_of_w_same_side AffineSubspace.isConnected_setOf_wSameSideₓ'. -/
theorem isConnected_setOf_wSameSide {s : AffineSubspace ℝ P} (x : P) (h : (s : Set P).Nonempty) :
IsConnected { y | s.WSameSide x y } :=
by
@@ -910,6 +1584,12 @@ theorem isConnected_setOf_wSameSide {s : AffineSubspace ℝ P} (x : P) (h : (s :
convert AddTorsor.connectedSpace s.direction s
#align affine_subspace.is_connected_set_of_w_same_side AffineSubspace.isConnected_setOf_wSameSide
+/- warning: affine_subspace.is_preconnected_set_of_w_same_side -> AffineSubspace.isPreconnected_setOf_wSameSide is a dubious translation:
+lean 3 declaration is
+ forall {V : Type.{u1}} {P : Type.{u2}} [_inst_1 : SeminormedAddCommGroup.{u1} V] [_inst_2 : NormedSpace.{0, u1} Real V Real.normedField _inst_1] [_inst_3 : PseudoMetricSpace.{u2} P] [_inst_4 : NormedAddTorsor.{u1, u2} V P _inst_1 _inst_3] (s : AffineSubspace.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4)) (x : P), IsPreconnected.{u2} P (UniformSpace.toTopologicalSpace.{u2} P (PseudoMetricSpace.toUniformSpace.{u2} P _inst_3)) (setOf.{u2} P (fun (y : P) => AffineSubspace.WSameSide.{0, u1, u2} Real V P Real.strictOrderedCommRing (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4) s x y))
+but is expected to have type
+ forall {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : SeminormedAddCommGroup.{u2} V] [_inst_2 : NormedSpace.{0, u2} Real V Real.normedField _inst_1] [_inst_3 : PseudoMetricSpace.{u1} P] [_inst_4 : NormedAddTorsor.{u2, u1} V P _inst_1 _inst_3] (s : AffineSubspace.{0, u2, u1} Real V P Real.instRingReal (SeminormedAddCommGroup.toAddCommGroup.{u2} V _inst_1) (NormedSpace.toModule.{0, u2} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u2, u1} V P _inst_1 _inst_3 _inst_4)) (x : P), IsPreconnected.{u1} P (UniformSpace.toTopologicalSpace.{u1} P (PseudoMetricSpace.toUniformSpace.{u1} P _inst_3)) (setOf.{u1} P (fun (y : P) => AffineSubspace.WSameSide.{0, u2, u1} Real V P Real.instStrictOrderedCommRingReal (SeminormedAddCommGroup.toAddCommGroup.{u2} V _inst_1) (NormedSpace.toModule.{0, u2} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u2, u1} V P _inst_1 _inst_3 _inst_4) s x y))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.is_preconnected_set_of_w_same_side AffineSubspace.isPreconnected_setOf_wSameSideₓ'. -/
theorem isPreconnected_setOf_wSameSide (s : AffineSubspace ℝ P) (x : P) :
IsPreconnected { y | s.WSameSide x y } :=
by
@@ -921,6 +1601,12 @@ theorem isPreconnected_setOf_wSameSide (s : AffineSubspace ℝ P) (x : P) :
· exact (is_connected_set_of_w_same_side x h).IsPreconnected
#align affine_subspace.is_preconnected_set_of_w_same_side AffineSubspace.isPreconnected_setOf_wSameSide
+/- warning: affine_subspace.is_connected_set_of_s_same_side -> AffineSubspace.isConnected_setOf_sSameSide is a dubious translation:
+lean 3 declaration is
+ forall {V : Type.{u1}} {P : Type.{u2}} [_inst_1 : SeminormedAddCommGroup.{u1} V] [_inst_2 : NormedSpace.{0, u1} Real V Real.normedField _inst_1] [_inst_3 : PseudoMetricSpace.{u2} P] [_inst_4 : NormedAddTorsor.{u1, u2} V P _inst_1 _inst_3] {s : AffineSubspace.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4)} {x : P}, (Not (Membership.Mem.{u2, u2} P (AffineSubspace.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4)) (SetLike.hasMem.{u2, u2} (AffineSubspace.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4)) P (AffineSubspace.setLike.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4))) x s)) -> (Set.Nonempty.{u2} P ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (AffineSubspace.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4)) (Set.{u2} P) (HasLiftT.mk.{succ u2, succ u2} (AffineSubspace.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4)) (Set.{u2} P) (CoeTCₓ.coe.{succ u2, succ u2} (AffineSubspace.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4)) (Set.{u2} P) (SetLike.Set.hasCoeT.{u2, u2} (AffineSubspace.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4)) P (AffineSubspace.setLike.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4))))) s)) -> (IsConnected.{u2} P (UniformSpace.toTopologicalSpace.{u2} P (PseudoMetricSpace.toUniformSpace.{u2} P _inst_3)) (setOf.{u2} P (fun (y : P) => AffineSubspace.SSameSide.{0, u1, u2} Real V P Real.strictOrderedCommRing (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4) s x y)))
+but is expected to have type
+ forall {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : SeminormedAddCommGroup.{u2} V] [_inst_2 : NormedSpace.{0, u2} Real V Real.normedField _inst_1] [_inst_3 : PseudoMetricSpace.{u1} P] [_inst_4 : NormedAddTorsor.{u2, u1} V P _inst_1 _inst_3] {s : AffineSubspace.{0, u2, u1} Real V P Real.instRingReal (SeminormedAddCommGroup.toAddCommGroup.{u2} V _inst_1) (NormedSpace.toModule.{0, u2} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u2, u1} V P _inst_1 _inst_3 _inst_4)} {x : P}, (Not (Membership.mem.{u1, u1} P (AffineSubspace.{0, u2, u1} Real V P Real.instRingReal (SeminormedAddCommGroup.toAddCommGroup.{u2} V _inst_1) (NormedSpace.toModule.{0, u2} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u2, u1} V P _inst_1 _inst_3 _inst_4)) (SetLike.instMembership.{u1, u1} (AffineSubspace.{0, u2, u1} Real V P Real.instRingReal (SeminormedAddCommGroup.toAddCommGroup.{u2} V _inst_1) (NormedSpace.toModule.{0, u2} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u2, u1} V P _inst_1 _inst_3 _inst_4)) P (AffineSubspace.instSetLikeAffineSubspace.{0, u2, u1} Real V P Real.instRingReal (SeminormedAddCommGroup.toAddCommGroup.{u2} V _inst_1) (NormedSpace.toModule.{0, u2} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u2, u1} V P _inst_1 _inst_3 _inst_4))) x s)) -> (Set.Nonempty.{u1} P (SetLike.coe.{u1, u1} (AffineSubspace.{0, u2, u1} Real V P Real.instRingReal (SeminormedAddCommGroup.toAddCommGroup.{u2} V _inst_1) (NormedSpace.toModule.{0, u2} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u2, u1} V P _inst_1 _inst_3 _inst_4)) P (AffineSubspace.instSetLikeAffineSubspace.{0, u2, u1} Real V P Real.instRingReal (SeminormedAddCommGroup.toAddCommGroup.{u2} V _inst_1) (NormedSpace.toModule.{0, u2} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u2, u1} V P _inst_1 _inst_3 _inst_4)) s)) -> (IsConnected.{u1} P (UniformSpace.toTopologicalSpace.{u1} P (PseudoMetricSpace.toUniformSpace.{u1} P _inst_3)) (setOf.{u1} P (fun (y : P) => AffineSubspace.SSameSide.{0, u2, u1} Real V P Real.instStrictOrderedCommRingReal (SeminormedAddCommGroup.toAddCommGroup.{u2} V _inst_1) (NormedSpace.toModule.{0, u2} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u2, u1} V P _inst_1 _inst_3 _inst_4) s x y)))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.is_connected_set_of_s_same_side AffineSubspace.isConnected_setOf_sSameSideₓ'. -/
theorem isConnected_setOf_sSameSide {s : AffineSubspace ℝ P} {x : P} (hx : x ∉ s)
(h : (s : Set P).Nonempty) : IsConnected { y | s.SSameSide x y } :=
by
@@ -933,6 +1619,12 @@ theorem isConnected_setOf_sSameSide {s : AffineSubspace ℝ P} {x : P} (hx : x
convert AddTorsor.connectedSpace s.direction s
#align affine_subspace.is_connected_set_of_s_same_side AffineSubspace.isConnected_setOf_sSameSide
+/- warning: affine_subspace.is_preconnected_set_of_s_same_side -> AffineSubspace.isPreconnected_setOf_sSameSide is a dubious translation:
+lean 3 declaration is
+ forall {V : Type.{u1}} {P : Type.{u2}} [_inst_1 : SeminormedAddCommGroup.{u1} V] [_inst_2 : NormedSpace.{0, u1} Real V Real.normedField _inst_1] [_inst_3 : PseudoMetricSpace.{u2} P] [_inst_4 : NormedAddTorsor.{u1, u2} V P _inst_1 _inst_3] (s : AffineSubspace.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4)) (x : P), IsPreconnected.{u2} P (UniformSpace.toTopologicalSpace.{u2} P (PseudoMetricSpace.toUniformSpace.{u2} P _inst_3)) (setOf.{u2} P (fun (y : P) => AffineSubspace.SSameSide.{0, u1, u2} Real V P Real.strictOrderedCommRing (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4) s x y))
+but is expected to have type
+ forall {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : SeminormedAddCommGroup.{u2} V] [_inst_2 : NormedSpace.{0, u2} Real V Real.normedField _inst_1] [_inst_3 : PseudoMetricSpace.{u1} P] [_inst_4 : NormedAddTorsor.{u2, u1} V P _inst_1 _inst_3] (s : AffineSubspace.{0, u2, u1} Real V P Real.instRingReal (SeminormedAddCommGroup.toAddCommGroup.{u2} V _inst_1) (NormedSpace.toModule.{0, u2} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u2, u1} V P _inst_1 _inst_3 _inst_4)) (x : P), IsPreconnected.{u1} P (UniformSpace.toTopologicalSpace.{u1} P (PseudoMetricSpace.toUniformSpace.{u1} P _inst_3)) (setOf.{u1} P (fun (y : P) => AffineSubspace.SSameSide.{0, u2, u1} Real V P Real.instStrictOrderedCommRingReal (SeminormedAddCommGroup.toAddCommGroup.{u2} V _inst_1) (NormedSpace.toModule.{0, u2} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u2, u1} V P _inst_1 _inst_3 _inst_4) s x y))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.is_preconnected_set_of_s_same_side AffineSubspace.isPreconnected_setOf_sSameSideₓ'. -/
theorem isPreconnected_setOf_sSameSide (s : AffineSubspace ℝ P) (x : P) :
IsPreconnected { y | s.SSameSide x y } :=
by
@@ -948,6 +1640,12 @@ theorem isPreconnected_setOf_sSameSide (s : AffineSubspace ℝ P) (x : P) :
· exact (is_connected_set_of_s_same_side hx h).IsPreconnected
#align affine_subspace.is_preconnected_set_of_s_same_side AffineSubspace.isPreconnected_setOf_sSameSide
+/- warning: affine_subspace.is_connected_set_of_w_opp_side -> AffineSubspace.isConnected_setOf_wOppSide is a dubious translation:
+lean 3 declaration is
+ forall {V : Type.{u1}} {P : Type.{u2}} [_inst_1 : SeminormedAddCommGroup.{u1} V] [_inst_2 : NormedSpace.{0, u1} Real V Real.normedField _inst_1] [_inst_3 : PseudoMetricSpace.{u2} P] [_inst_4 : NormedAddTorsor.{u1, u2} V P _inst_1 _inst_3] {s : AffineSubspace.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4)} (x : P), (Set.Nonempty.{u2} P ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (AffineSubspace.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4)) (Set.{u2} P) (HasLiftT.mk.{succ u2, succ u2} (AffineSubspace.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4)) (Set.{u2} P) (CoeTCₓ.coe.{succ u2, succ u2} (AffineSubspace.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4)) (Set.{u2} P) (SetLike.Set.hasCoeT.{u2, u2} (AffineSubspace.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4)) P (AffineSubspace.setLike.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4))))) s)) -> (IsConnected.{u2} P (UniformSpace.toTopologicalSpace.{u2} P (PseudoMetricSpace.toUniformSpace.{u2} P _inst_3)) (setOf.{u2} P (fun (y : P) => AffineSubspace.WOppSide.{0, u1, u2} Real V P Real.strictOrderedCommRing (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4) s x y)))
+but is expected to have type
+ forall {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : SeminormedAddCommGroup.{u2} V] [_inst_2 : NormedSpace.{0, u2} Real V Real.normedField _inst_1] [_inst_3 : PseudoMetricSpace.{u1} P] [_inst_4 : NormedAddTorsor.{u2, u1} V P _inst_1 _inst_3] {s : AffineSubspace.{0, u2, u1} Real V P Real.instRingReal (SeminormedAddCommGroup.toAddCommGroup.{u2} V _inst_1) (NormedSpace.toModule.{0, u2} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u2, u1} V P _inst_1 _inst_3 _inst_4)} (x : P), (Set.Nonempty.{u1} P (SetLike.coe.{u1, u1} (AffineSubspace.{0, u2, u1} Real V P Real.instRingReal (SeminormedAddCommGroup.toAddCommGroup.{u2} V _inst_1) (NormedSpace.toModule.{0, u2} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u2, u1} V P _inst_1 _inst_3 _inst_4)) P (AffineSubspace.instSetLikeAffineSubspace.{0, u2, u1} Real V P Real.instRingReal (SeminormedAddCommGroup.toAddCommGroup.{u2} V _inst_1) (NormedSpace.toModule.{0, u2} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u2, u1} V P _inst_1 _inst_3 _inst_4)) s)) -> (IsConnected.{u1} P (UniformSpace.toTopologicalSpace.{u1} P (PseudoMetricSpace.toUniformSpace.{u1} P _inst_3)) (setOf.{u1} P (fun (y : P) => AffineSubspace.WOppSide.{0, u2, u1} Real V P Real.instStrictOrderedCommRingReal (SeminormedAddCommGroup.toAddCommGroup.{u2} V _inst_1) (NormedSpace.toModule.{0, u2} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u2, u1} V P _inst_1 _inst_3 _inst_4) s x y)))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.is_connected_set_of_w_opp_side AffineSubspace.isConnected_setOf_wOppSideₓ'. -/
theorem isConnected_setOf_wOppSide {s : AffineSubspace ℝ P} (x : P) (h : (s : Set P).Nonempty) :
IsConnected { y | s.WOppSide x y } :=
by
@@ -964,6 +1662,12 @@ theorem isConnected_setOf_wOppSide {s : AffineSubspace ℝ P} (x : P) (h : (s :
convert AddTorsor.connectedSpace s.direction s
#align affine_subspace.is_connected_set_of_w_opp_side AffineSubspace.isConnected_setOf_wOppSide
+/- warning: affine_subspace.is_preconnected_set_of_w_opp_side -> AffineSubspace.isPreconnected_setOf_wOppSide is a dubious translation:
+lean 3 declaration is
+ forall {V : Type.{u1}} {P : Type.{u2}} [_inst_1 : SeminormedAddCommGroup.{u1} V] [_inst_2 : NormedSpace.{0, u1} Real V Real.normedField _inst_1] [_inst_3 : PseudoMetricSpace.{u2} P] [_inst_4 : NormedAddTorsor.{u1, u2} V P _inst_1 _inst_3] (s : AffineSubspace.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4)) (x : P), IsPreconnected.{u2} P (UniformSpace.toTopologicalSpace.{u2} P (PseudoMetricSpace.toUniformSpace.{u2} P _inst_3)) (setOf.{u2} P (fun (y : P) => AffineSubspace.WOppSide.{0, u1, u2} Real V P Real.strictOrderedCommRing (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4) s x y))
+but is expected to have type
+ forall {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : SeminormedAddCommGroup.{u2} V] [_inst_2 : NormedSpace.{0, u2} Real V Real.normedField _inst_1] [_inst_3 : PseudoMetricSpace.{u1} P] [_inst_4 : NormedAddTorsor.{u2, u1} V P _inst_1 _inst_3] (s : AffineSubspace.{0, u2, u1} Real V P Real.instRingReal (SeminormedAddCommGroup.toAddCommGroup.{u2} V _inst_1) (NormedSpace.toModule.{0, u2} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u2, u1} V P _inst_1 _inst_3 _inst_4)) (x : P), IsPreconnected.{u1} P (UniformSpace.toTopologicalSpace.{u1} P (PseudoMetricSpace.toUniformSpace.{u1} P _inst_3)) (setOf.{u1} P (fun (y : P) => AffineSubspace.WOppSide.{0, u2, u1} Real V P Real.instStrictOrderedCommRingReal (SeminormedAddCommGroup.toAddCommGroup.{u2} V _inst_1) (NormedSpace.toModule.{0, u2} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u2, u1} V P _inst_1 _inst_3 _inst_4) s x y))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.is_preconnected_set_of_w_opp_side AffineSubspace.isPreconnected_setOf_wOppSideₓ'. -/
theorem isPreconnected_setOf_wOppSide (s : AffineSubspace ℝ P) (x : P) :
IsPreconnected { y | s.WOppSide x y } :=
by
@@ -975,6 +1679,12 @@ theorem isPreconnected_setOf_wOppSide (s : AffineSubspace ℝ P) (x : P) :
· exact (is_connected_set_of_w_opp_side x h).IsPreconnected
#align affine_subspace.is_preconnected_set_of_w_opp_side AffineSubspace.isPreconnected_setOf_wOppSide
+/- warning: affine_subspace.is_connected_set_of_s_opp_side -> AffineSubspace.isConnected_setOf_sOppSide is a dubious translation:
+lean 3 declaration is
+ forall {V : Type.{u1}} {P : Type.{u2}} [_inst_1 : SeminormedAddCommGroup.{u1} V] [_inst_2 : NormedSpace.{0, u1} Real V Real.normedField _inst_1] [_inst_3 : PseudoMetricSpace.{u2} P] [_inst_4 : NormedAddTorsor.{u1, u2} V P _inst_1 _inst_3] {s : AffineSubspace.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4)} {x : P}, (Not (Membership.Mem.{u2, u2} P (AffineSubspace.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4)) (SetLike.hasMem.{u2, u2} (AffineSubspace.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4)) P (AffineSubspace.setLike.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4))) x s)) -> (Set.Nonempty.{u2} P ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (AffineSubspace.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4)) (Set.{u2} P) (HasLiftT.mk.{succ u2, succ u2} (AffineSubspace.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4)) (Set.{u2} P) (CoeTCₓ.coe.{succ u2, succ u2} (AffineSubspace.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4)) (Set.{u2} P) (SetLike.Set.hasCoeT.{u2, u2} (AffineSubspace.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4)) P (AffineSubspace.setLike.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4))))) s)) -> (IsConnected.{u2} P (UniformSpace.toTopologicalSpace.{u2} P (PseudoMetricSpace.toUniformSpace.{u2} P _inst_3)) (setOf.{u2} P (fun (y : P) => AffineSubspace.SOppSide.{0, u1, u2} Real V P Real.strictOrderedCommRing (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4) s x y)))
+but is expected to have type
+ forall {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : SeminormedAddCommGroup.{u2} V] [_inst_2 : NormedSpace.{0, u2} Real V Real.normedField _inst_1] [_inst_3 : PseudoMetricSpace.{u1} P] [_inst_4 : NormedAddTorsor.{u2, u1} V P _inst_1 _inst_3] {s : AffineSubspace.{0, u2, u1} Real V P Real.instRingReal (SeminormedAddCommGroup.toAddCommGroup.{u2} V _inst_1) (NormedSpace.toModule.{0, u2} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u2, u1} V P _inst_1 _inst_3 _inst_4)} {x : P}, (Not (Membership.mem.{u1, u1} P (AffineSubspace.{0, u2, u1} Real V P Real.instRingReal (SeminormedAddCommGroup.toAddCommGroup.{u2} V _inst_1) (NormedSpace.toModule.{0, u2} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u2, u1} V P _inst_1 _inst_3 _inst_4)) (SetLike.instMembership.{u1, u1} (AffineSubspace.{0, u2, u1} Real V P Real.instRingReal (SeminormedAddCommGroup.toAddCommGroup.{u2} V _inst_1) (NormedSpace.toModule.{0, u2} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u2, u1} V P _inst_1 _inst_3 _inst_4)) P (AffineSubspace.instSetLikeAffineSubspace.{0, u2, u1} Real V P Real.instRingReal (SeminormedAddCommGroup.toAddCommGroup.{u2} V _inst_1) (NormedSpace.toModule.{0, u2} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u2, u1} V P _inst_1 _inst_3 _inst_4))) x s)) -> (Set.Nonempty.{u1} P (SetLike.coe.{u1, u1} (AffineSubspace.{0, u2, u1} Real V P Real.instRingReal (SeminormedAddCommGroup.toAddCommGroup.{u2} V _inst_1) (NormedSpace.toModule.{0, u2} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u2, u1} V P _inst_1 _inst_3 _inst_4)) P (AffineSubspace.instSetLikeAffineSubspace.{0, u2, u1} Real V P Real.instRingReal (SeminormedAddCommGroup.toAddCommGroup.{u2} V _inst_1) (NormedSpace.toModule.{0, u2} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u2, u1} V P _inst_1 _inst_3 _inst_4)) s)) -> (IsConnected.{u1} P (UniformSpace.toTopologicalSpace.{u1} P (PseudoMetricSpace.toUniformSpace.{u1} P _inst_3)) (setOf.{u1} P (fun (y : P) => AffineSubspace.SOppSide.{0, u2, u1} Real V P Real.instStrictOrderedCommRingReal (SeminormedAddCommGroup.toAddCommGroup.{u2} V _inst_1) (NormedSpace.toModule.{0, u2} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u2, u1} V P _inst_1 _inst_3 _inst_4) s x y)))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.is_connected_set_of_s_opp_side AffineSubspace.isConnected_setOf_sOppSideₓ'. -/
theorem isConnected_setOf_sOppSide {s : AffineSubspace ℝ P} {x : P} (hx : x ∉ s)
(h : (s : Set P).Nonempty) : IsConnected { y | s.SOppSide x y } :=
by
@@ -987,6 +1697,12 @@ theorem isConnected_setOf_sOppSide {s : AffineSubspace ℝ P} {x : P} (hx : x
convert AddTorsor.connectedSpace s.direction s
#align affine_subspace.is_connected_set_of_s_opp_side AffineSubspace.isConnected_setOf_sOppSide
+/- warning: affine_subspace.is_preconnected_set_of_s_opp_side -> AffineSubspace.isPreconnected_setOf_sOppSide is a dubious translation:
+lean 3 declaration is
+ forall {V : Type.{u1}} {P : Type.{u2}} [_inst_1 : SeminormedAddCommGroup.{u1} V] [_inst_2 : NormedSpace.{0, u1} Real V Real.normedField _inst_1] [_inst_3 : PseudoMetricSpace.{u2} P] [_inst_4 : NormedAddTorsor.{u1, u2} V P _inst_1 _inst_3] (s : AffineSubspace.{0, u1, u2} Real V P Real.ring (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4)) (x : P), IsPreconnected.{u2} P (UniformSpace.toTopologicalSpace.{u2} P (PseudoMetricSpace.toUniformSpace.{u2} P _inst_3)) (setOf.{u2} P (fun (y : P) => AffineSubspace.SOppSide.{0, u1, u2} Real V P Real.strictOrderedCommRing (SeminormedAddCommGroup.toAddCommGroup.{u1} V _inst_1) (NormedSpace.toModule.{0, u1} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u1, u2} V P _inst_1 _inst_3 _inst_4) s x y))
+but is expected to have type
+ forall {V : Type.{u2}} {P : Type.{u1}} [_inst_1 : SeminormedAddCommGroup.{u2} V] [_inst_2 : NormedSpace.{0, u2} Real V Real.normedField _inst_1] [_inst_3 : PseudoMetricSpace.{u1} P] [_inst_4 : NormedAddTorsor.{u2, u1} V P _inst_1 _inst_3] (s : AffineSubspace.{0, u2, u1} Real V P Real.instRingReal (SeminormedAddCommGroup.toAddCommGroup.{u2} V _inst_1) (NormedSpace.toModule.{0, u2} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u2, u1} V P _inst_1 _inst_3 _inst_4)) (x : P), IsPreconnected.{u1} P (UniformSpace.toTopologicalSpace.{u1} P (PseudoMetricSpace.toUniformSpace.{u1} P _inst_3)) (setOf.{u1} P (fun (y : P) => AffineSubspace.SOppSide.{0, u2, u1} Real V P Real.instStrictOrderedCommRingReal (SeminormedAddCommGroup.toAddCommGroup.{u2} V _inst_1) (NormedSpace.toModule.{0, u2} Real V Real.normedField _inst_1 _inst_2) (NormedAddTorsor.toAddTorsor.{u2, u1} V P _inst_1 _inst_3 _inst_4) s x y))
+Case conversion may be inaccurate. Consider using '#align affine_subspace.is_preconnected_set_of_s_opp_side AffineSubspace.isPreconnected_setOf_sOppSideₓ'. -/
theorem isPreconnected_setOf_sOppSide (s : AffineSubspace ℝ P) (x : P) :
IsPreconnected { y | s.SOppSide x y } :=
by
mathlib commit https://github.com/leanprover-community/mathlib/commit/b19481deb571022990f1baa9cbf9172e6757a479
@@ -258,26 +258,27 @@ theorem sSameSide_self_iff {s : AffineSubspace R P} {x : P} :
⟨fun ⟨h, hx, _⟩ => ⟨wSameSide_self_iff.1 h, hx⟩, fun ⟨h, hx⟩ => ⟨wSameSide_self_iff.2 h, hx, hx⟩⟩
#align affine_subspace.s_same_side_self_iff AffineSubspace.sSameSide_self_iff
-theorem wSameSideOfLeftMem {s : AffineSubspace R P} {x : P} (y : P) (hx : x ∈ s) :
+theorem wSameSide_of_left_mem {s : AffineSubspace R P} {x : P} (y : P) (hx : x ∈ s) :
s.WSameSide x y := by
refine' ⟨x, hx, x, hx, _⟩
simp
-#align affine_subspace.w_same_side_of_left_mem AffineSubspace.wSameSideOfLeftMem
+#align affine_subspace.w_same_side_of_left_mem AffineSubspace.wSameSide_of_left_mem
-theorem wSameSideOfRightMem {s : AffineSubspace R P} (x : P) {y : P} (hy : y ∈ s) :
+theorem wSameSide_of_right_mem {s : AffineSubspace R P} (x : P) {y : P} (hy : y ∈ s) :
s.WSameSide x y :=
- (wSameSideOfLeftMem x hy).symm
-#align affine_subspace.w_same_side_of_right_mem AffineSubspace.wSameSideOfRightMem
+ (wSameSide_of_left_mem x hy).symm
+#align affine_subspace.w_same_side_of_right_mem AffineSubspace.wSameSide_of_right_mem
-theorem wOppSideOfLeftMem {s : AffineSubspace R P} {x : P} (y : P) (hx : x ∈ s) : s.WOppSide x y :=
- by
+theorem wOppSide_of_left_mem {s : AffineSubspace R P} {x : P} (y : P) (hx : x ∈ s) :
+ s.WOppSide x y := by
refine' ⟨x, hx, x, hx, _⟩
simp
-#align affine_subspace.w_opp_side_of_left_mem AffineSubspace.wOppSideOfLeftMem
+#align affine_subspace.w_opp_side_of_left_mem AffineSubspace.wOppSide_of_left_mem
-theorem wOppSideOfRightMem {s : AffineSubspace R P} (x : P) {y : P} (hy : y ∈ s) : s.WOppSide x y :=
- (wOppSideOfLeftMem x hy).symm
-#align affine_subspace.w_opp_side_of_right_mem AffineSubspace.wOppSideOfRightMem
+theorem wOppSide_of_right_mem {s : AffineSubspace R P} (x : P) {y : P} (hy : y ∈ s) :
+ s.WOppSide x y :=
+ (wOppSide_of_left_mem x hy).symm
+#align affine_subspace.w_opp_side_of_right_mem AffineSubspace.wOppSide_of_right_mem
theorem wSameSide_vadd_left_iff {s : AffineSubspace R P} {x y : P} {v : V} (hv : v ∈ s.direction) :
s.WSameSide (v +ᵥ x) y ↔ s.WSameSide x y :=
@@ -335,74 +336,74 @@ theorem sOppSide_vadd_right_iff {s : AffineSubspace R P} {x y : P} {v : V} (hv :
rw [s_opp_side_comm, s_opp_side_vadd_left_iff hv, s_opp_side_comm]
#align affine_subspace.s_opp_side_vadd_right_iff AffineSubspace.sOppSide_vadd_right_iff
-theorem wSameSideSmulVsubVaddLeft {s : AffineSubspace R P} {p₁ p₂ : P} (x : P) (hp₁ : p₁ ∈ s)
+theorem wSameSide_smul_vsub_vadd_left {s : AffineSubspace R P} {p₁ p₂ : P} (x : P) (hp₁ : p₁ ∈ s)
(hp₂ : p₂ ∈ s) {t : R} (ht : 0 ≤ t) : s.WSameSide (t • (x -ᵥ p₁) +ᵥ p₂) x :=
by
refine' ⟨p₂, hp₂, p₁, hp₁, _⟩
rw [vadd_vsub]
exact SameRay.sameRay_nonneg_smul_left _ ht
-#align affine_subspace.w_same_side_smul_vsub_vadd_left AffineSubspace.wSameSideSmulVsubVaddLeft
+#align affine_subspace.w_same_side_smul_vsub_vadd_left AffineSubspace.wSameSide_smul_vsub_vadd_left
-theorem wSameSideSmulVsubVaddRight {s : AffineSubspace R P} {p₁ p₂ : P} (x : P) (hp₁ : p₁ ∈ s)
+theorem wSameSide_smul_vsub_vadd_right {s : AffineSubspace R P} {p₁ p₂ : P} (x : P) (hp₁ : p₁ ∈ s)
(hp₂ : p₂ ∈ s) {t : R} (ht : 0 ≤ t) : s.WSameSide x (t • (x -ᵥ p₁) +ᵥ p₂) :=
- (wSameSideSmulVsubVaddLeft x hp₁ hp₂ ht).symm
-#align affine_subspace.w_same_side_smul_vsub_vadd_right AffineSubspace.wSameSideSmulVsubVaddRight
+ (wSameSide_smul_vsub_vadd_left x hp₁ hp₂ ht).symm
+#align affine_subspace.w_same_side_smul_vsub_vadd_right AffineSubspace.wSameSide_smul_vsub_vadd_right
-theorem wSameSideLineMapLeft {s : AffineSubspace R P} {x : P} (y : P) (h : x ∈ s) {t : R}
+theorem wSameSide_lineMap_left {s : AffineSubspace R P} {x : P} (y : P) (h : x ∈ s) {t : R}
(ht : 0 ≤ t) : s.WSameSide (lineMap x y t) y :=
- wSameSideSmulVsubVaddLeft y h h ht
-#align affine_subspace.w_same_side_line_map_left AffineSubspace.wSameSideLineMapLeft
+ wSameSide_smul_vsub_vadd_left y h h ht
+#align affine_subspace.w_same_side_line_map_left AffineSubspace.wSameSide_lineMap_left
-theorem wSameSideLineMapRight {s : AffineSubspace R P} {x : P} (y : P) (h : x ∈ s) {t : R}
+theorem wSameSide_lineMap_right {s : AffineSubspace R P} {x : P} (y : P) (h : x ∈ s) {t : R}
(ht : 0 ≤ t) : s.WSameSide y (lineMap x y t) :=
- (wSameSideLineMapLeft y h ht).symm
-#align affine_subspace.w_same_side_line_map_right AffineSubspace.wSameSideLineMapRight
+ (wSameSide_lineMap_left y h ht).symm
+#align affine_subspace.w_same_side_line_map_right AffineSubspace.wSameSide_lineMap_right
-theorem wOppSideSmulVsubVaddLeft {s : AffineSubspace R P} {p₁ p₂ : P} (x : P) (hp₁ : p₁ ∈ s)
+theorem wOppSide_smul_vsub_vadd_left {s : AffineSubspace R P} {p₁ p₂ : P} (x : P) (hp₁ : p₁ ∈ s)
(hp₂ : p₂ ∈ s) {t : R} (ht : t ≤ 0) : s.WOppSide (t • (x -ᵥ p₁) +ᵥ p₂) x :=
by
refine' ⟨p₂, hp₂, p₁, hp₁, _⟩
rw [vadd_vsub, ← neg_neg t, neg_smul, ← smul_neg, neg_vsub_eq_vsub_rev]
exact SameRay.sameRay_nonneg_smul_left _ (neg_nonneg.2 ht)
-#align affine_subspace.w_opp_side_smul_vsub_vadd_left AffineSubspace.wOppSideSmulVsubVaddLeft
+#align affine_subspace.w_opp_side_smul_vsub_vadd_left AffineSubspace.wOppSide_smul_vsub_vadd_left
-theorem wOppSideSmulVsubVaddRight {s : AffineSubspace R P} {p₁ p₂ : P} (x : P) (hp₁ : p₁ ∈ s)
+theorem wOppSide_smul_vsub_vadd_right {s : AffineSubspace R P} {p₁ p₂ : P} (x : P) (hp₁ : p₁ ∈ s)
(hp₂ : p₂ ∈ s) {t : R} (ht : t ≤ 0) : s.WOppSide x (t • (x -ᵥ p₁) +ᵥ p₂) :=
- (wOppSideSmulVsubVaddLeft x hp₁ hp₂ ht).symm
-#align affine_subspace.w_opp_side_smul_vsub_vadd_right AffineSubspace.wOppSideSmulVsubVaddRight
+ (wOppSide_smul_vsub_vadd_left x hp₁ hp₂ ht).symm
+#align affine_subspace.w_opp_side_smul_vsub_vadd_right AffineSubspace.wOppSide_smul_vsub_vadd_right
-theorem wOppSideLineMapLeft {s : AffineSubspace R P} {x : P} (y : P) (h : x ∈ s) {t : R}
+theorem wOppSide_lineMap_left {s : AffineSubspace R P} {x : P} (y : P) (h : x ∈ s) {t : R}
(ht : t ≤ 0) : s.WOppSide (lineMap x y t) y :=
- wOppSideSmulVsubVaddLeft y h h ht
-#align affine_subspace.w_opp_side_line_map_left AffineSubspace.wOppSideLineMapLeft
+ wOppSide_smul_vsub_vadd_left y h h ht
+#align affine_subspace.w_opp_side_line_map_left AffineSubspace.wOppSide_lineMap_left
-theorem wOppSideLineMapRight {s : AffineSubspace R P} {x : P} (y : P) (h : x ∈ s) {t : R}
+theorem wOppSide_lineMap_right {s : AffineSubspace R P} {x : P} (y : P) (h : x ∈ s) {t : R}
(ht : t ≤ 0) : s.WOppSide y (lineMap x y t) :=
- (wOppSideLineMapLeft y h ht).symm
-#align affine_subspace.w_opp_side_line_map_right AffineSubspace.wOppSideLineMapRight
+ (wOppSide_lineMap_left y h ht).symm
+#align affine_subspace.w_opp_side_line_map_right AffineSubspace.wOppSide_lineMap_right
-theorem Wbtw.wSameSide₂₃ {s : AffineSubspace R P} {x y z : P} (h : Wbtw R x y z) (hx : x ∈ s) :
+theorem Wbtw.w_same_side₂₃ {s : AffineSubspace R P} {x y z : P} (h : Wbtw R x y z) (hx : x ∈ s) :
s.WSameSide y z := by
rcases h with ⟨t, ⟨ht0, -⟩, rfl⟩
exact w_same_side_line_map_left z hx ht0
-#align wbtw.w_same_side₂₃ Wbtw.wSameSide₂₃
+#align wbtw.w_same_side₂₃ Wbtw.w_same_side₂₃
-theorem Wbtw.wSameSide₃₂ {s : AffineSubspace R P} {x y z : P} (h : Wbtw R x y z) (hx : x ∈ s) :
+theorem Wbtw.w_same_side₃₂ {s : AffineSubspace R P} {x y z : P} (h : Wbtw R x y z) (hx : x ∈ s) :
s.WSameSide z y :=
- (h.wSameSide₂₃ hx).symm
-#align wbtw.w_same_side₃₂ Wbtw.wSameSide₃₂
+ (h.w_same_side₂₃ hx).symm
+#align wbtw.w_same_side₃₂ Wbtw.w_same_side₃₂
-theorem Wbtw.wSameSide₁₂ {s : AffineSubspace R P} {x y z : P} (h : Wbtw R x y z) (hz : z ∈ s) :
+theorem Wbtw.w_same_side₁₂ {s : AffineSubspace R P} {x y z : P} (h : Wbtw R x y z) (hz : z ∈ s) :
s.WSameSide x y :=
- h.symm.wSameSide₃₂ hz
-#align wbtw.w_same_side₁₂ Wbtw.wSameSide₁₂
+ h.symm.w_same_side₃₂ hz
+#align wbtw.w_same_side₁₂ Wbtw.w_same_side₁₂
-theorem Wbtw.wSameSide₂₁ {s : AffineSubspace R P} {x y z : P} (h : Wbtw R x y z) (hz : z ∈ s) :
+theorem Wbtw.w_same_side₂₁ {s : AffineSubspace R P} {x y z : P} (h : Wbtw R x y z) (hz : z ∈ s) :
s.WSameSide y x :=
- h.symm.wSameSide₂₃ hz
-#align wbtw.w_same_side₂₁ Wbtw.wSameSide₂₁
+ h.symm.w_same_side₂₃ hz
+#align wbtw.w_same_side₂₁ Wbtw.w_same_side₂₁
-theorem Wbtw.wOppSide₁₃ {s : AffineSubspace R P} {x y z : P} (h : Wbtw R x y z) (hy : y ∈ s) :
+theorem Wbtw.w_opp_side₁₃ {s : AffineSubspace R P} {x y z : P} (h : Wbtw R x y z) (hy : y ∈ s) :
s.WOppSide x z := by
rcases h with ⟨t, ⟨ht0, ht1⟩, rfl⟩
refine' ⟨_, hy, _, hy, _⟩
@@ -412,12 +413,12 @@ theorem Wbtw.wOppSide₁₃ {s : AffineSubspace R P} {x y z : P} (h : Wbtw R x y
simp_rw [line_map_apply, vadd_vsub_assoc, vsub_vadd_eq_vsub_sub, ← neg_vsub_eq_vsub_rev z x,
vsub_self, zero_sub, ← neg_one_smul R (z -ᵥ x), ← add_smul, smul_neg, ← neg_smul, smul_smul]
ring_nf
-#align wbtw.w_opp_side₁₃ Wbtw.wOppSide₁₃
+#align wbtw.w_opp_side₁₃ Wbtw.w_opp_side₁₃
-theorem Wbtw.wOppSide₃₁ {s : AffineSubspace R P} {x y z : P} (h : Wbtw R x y z) (hy : y ∈ s) :
+theorem Wbtw.w_opp_side₃₁ {s : AffineSubspace R P} {x y z : P} (h : Wbtw R x y z) (hy : y ∈ s) :
s.WOppSide z x :=
- h.symm.wOppSide₁₃ hy
-#align wbtw.w_opp_side₃₁ Wbtw.wOppSide₃₁
+ h.symm.w_opp_side₁₃ hy
+#align wbtw.w_opp_side₃₁ Wbtw.w_opp_side₃₁
end StrictOrderedCommRing
@@ -557,12 +558,12 @@ theorem WSameSide.trans {s : AffineSubspace R P} {x y z : P} (hxy : s.WSameSide
exact hy (h.symm ▸ hp₂)
#align affine_subspace.w_same_side.trans AffineSubspace.WSameSide.trans
-theorem WSameSide.transSSameSide {s : AffineSubspace R P} {x y z : P} (hxy : s.WSameSide x y)
+theorem WSameSide.trans_sSameSide {s : AffineSubspace R P} {x y z : P} (hxy : s.WSameSide x y)
(hyz : s.SSameSide y z) : s.WSameSide x z :=
hxy.trans hyz.1 hyz.2.1
-#align affine_subspace.w_same_side.trans_s_same_side AffineSubspace.WSameSide.transSSameSide
+#align affine_subspace.w_same_side.trans_s_same_side AffineSubspace.WSameSide.trans_sSameSide
-theorem WSameSide.transWOppSide {s : AffineSubspace R P} {x y z : P} (hxy : s.WSameSide x y)
+theorem WSameSide.trans_wOppSide {s : AffineSubspace R P} {x y z : P} (hxy : s.WSameSide x y)
(hyz : s.WOppSide y z) (hy : y ∉ s) : s.WOppSide x z :=
by
rcases hxy with ⟨p₁, hp₁, p₂, hp₂, hxy⟩
@@ -572,42 +573,42 @@ theorem WSameSide.transWOppSide {s : AffineSubspace R P} {x y z : P} (hxy : s.WS
refine' fun h => False.elim _
rw [vsub_eq_zero_iff_eq] at h
exact hy (h.symm ▸ hp₂)
-#align affine_subspace.w_same_side.trans_w_opp_side AffineSubspace.WSameSide.transWOppSide
+#align affine_subspace.w_same_side.trans_w_opp_side AffineSubspace.WSameSide.trans_wOppSide
-theorem WSameSide.transSOppSide {s : AffineSubspace R P} {x y z : P} (hxy : s.WSameSide x y)
+theorem WSameSide.trans_sOppSide {s : AffineSubspace R P} {x y z : P} (hxy : s.WSameSide x y)
(hyz : s.SOppSide y z) : s.WOppSide x z :=
- hxy.transWOppSide hyz.1 hyz.2.1
-#align affine_subspace.w_same_side.trans_s_opp_side AffineSubspace.WSameSide.transSOppSide
+ hxy.trans_wOppSide hyz.1 hyz.2.1
+#align affine_subspace.w_same_side.trans_s_opp_side AffineSubspace.WSameSide.trans_sOppSide
-theorem SSameSide.transWSameSide {s : AffineSubspace R P} {x y z : P} (hxy : s.SSameSide x y)
+theorem SSameSide.trans_wSameSide {s : AffineSubspace R P} {x y z : P} (hxy : s.SSameSide x y)
(hyz : s.WSameSide y z) : s.WSameSide x z :=
- (hyz.symm.transSSameSide hxy.symm).symm
-#align affine_subspace.s_same_side.trans_w_same_side AffineSubspace.SSameSide.transWSameSide
+ (hyz.symm.trans_sSameSide hxy.symm).symm
+#align affine_subspace.s_same_side.trans_w_same_side AffineSubspace.SSameSide.trans_wSameSide
theorem SSameSide.trans {s : AffineSubspace R P} {x y z : P} (hxy : s.SSameSide x y)
(hyz : s.SSameSide y z) : s.SSameSide x z :=
- ⟨hxy.WSameSide.transSSameSide hyz, hxy.2.1, hyz.2.2⟩
+ ⟨hxy.WSameSide.trans_sSameSide hyz, hxy.2.1, hyz.2.2⟩
#align affine_subspace.s_same_side.trans AffineSubspace.SSameSide.trans
-theorem SSameSide.transWOppSide {s : AffineSubspace R P} {x y z : P} (hxy : s.SSameSide x y)
+theorem SSameSide.trans_wOppSide {s : AffineSubspace R P} {x y z : P} (hxy : s.SSameSide x y)
(hyz : s.WOppSide y z) : s.WOppSide x z :=
- hxy.WSameSide.transWOppSide hyz hxy.2.2
-#align affine_subspace.s_same_side.trans_w_opp_side AffineSubspace.SSameSide.transWOppSide
+ hxy.WSameSide.trans_wOppSide hyz hxy.2.2
+#align affine_subspace.s_same_side.trans_w_opp_side AffineSubspace.SSameSide.trans_wOppSide
-theorem SSameSide.transSOppSide {s : AffineSubspace R P} {x y z : P} (hxy : s.SSameSide x y)
+theorem SSameSide.trans_sOppSide {s : AffineSubspace R P} {x y z : P} (hxy : s.SSameSide x y)
(hyz : s.SOppSide y z) : s.SOppSide x z :=
- ⟨hxy.transWOppSide hyz.1, hxy.2.1, hyz.2.2⟩
-#align affine_subspace.s_same_side.trans_s_opp_side AffineSubspace.SSameSide.transSOppSide
+ ⟨hxy.trans_wOppSide hyz.1, hxy.2.1, hyz.2.2⟩
+#align affine_subspace.s_same_side.trans_s_opp_side AffineSubspace.SSameSide.trans_sOppSide
-theorem WOppSide.transWSameSide {s : AffineSubspace R P} {x y z : P} (hxy : s.WOppSide x y)
+theorem WOppSide.trans_wSameSide {s : AffineSubspace R P} {x y z : P} (hxy : s.WOppSide x y)
(hyz : s.WSameSide y z) (hy : y ∉ s) : s.WOppSide x z :=
- (hyz.symm.transWOppSide hxy.symm hy).symm
-#align affine_subspace.w_opp_side.trans_w_same_side AffineSubspace.WOppSide.transWSameSide
+ (hyz.symm.trans_wOppSide hxy.symm hy).symm
+#align affine_subspace.w_opp_side.trans_w_same_side AffineSubspace.WOppSide.trans_wSameSide
-theorem WOppSide.transSSameSide {s : AffineSubspace R P} {x y z : P} (hxy : s.WOppSide x y)
+theorem WOppSide.trans_sSameSide {s : AffineSubspace R P} {x y z : P} (hxy : s.WOppSide x y)
(hyz : s.SSameSide y z) : s.WOppSide x z :=
- hxy.transWSameSide hyz.1 hyz.2.1
-#align affine_subspace.w_opp_side.trans_s_same_side AffineSubspace.WOppSide.transSSameSide
+ hxy.trans_wSameSide hyz.1 hyz.2.1
+#align affine_subspace.w_opp_side.trans_s_same_side AffineSubspace.WOppSide.trans_sSameSide
theorem WOppSide.trans {s : AffineSubspace R P} {x y z : P} (hxy : s.WOppSide x y)
(hyz : s.WOppSide y z) (hy : y ∉ s) : s.WSameSide x z :=
@@ -622,29 +623,29 @@ theorem WOppSide.trans {s : AffineSubspace R P} {x y z : P} (hxy : s.WOppSide x
exact hy (h ▸ hp₂)
#align affine_subspace.w_opp_side.trans AffineSubspace.WOppSide.trans
-theorem WOppSide.transSOppSide {s : AffineSubspace R P} {x y z : P} (hxy : s.WOppSide x y)
+theorem WOppSide.trans_sOppSide {s : AffineSubspace R P} {x y z : P} (hxy : s.WOppSide x y)
(hyz : s.SOppSide y z) : s.WSameSide x z :=
hxy.trans hyz.1 hyz.2.1
-#align affine_subspace.w_opp_side.trans_s_opp_side AffineSubspace.WOppSide.transSOppSide
+#align affine_subspace.w_opp_side.trans_s_opp_side AffineSubspace.WOppSide.trans_sOppSide
-theorem SOppSide.transWSameSide {s : AffineSubspace R P} {x y z : P} (hxy : s.SOppSide x y)
+theorem SOppSide.trans_wSameSide {s : AffineSubspace R P} {x y z : P} (hxy : s.SOppSide x y)
(hyz : s.WSameSide y z) : s.WOppSide x z :=
- (hyz.symm.transSOppSide hxy.symm).symm
-#align affine_subspace.s_opp_side.trans_w_same_side AffineSubspace.SOppSide.transWSameSide
+ (hyz.symm.trans_sOppSide hxy.symm).symm
+#align affine_subspace.s_opp_side.trans_w_same_side AffineSubspace.SOppSide.trans_wSameSide
-theorem SOppSide.transSSameSide {s : AffineSubspace R P} {x y z : P} (hxy : s.SOppSide x y)
+theorem SOppSide.trans_sSameSide {s : AffineSubspace R P} {x y z : P} (hxy : s.SOppSide x y)
(hyz : s.SSameSide y z) : s.SOppSide x z :=
- (hyz.symm.transSOppSide hxy.symm).symm
-#align affine_subspace.s_opp_side.trans_s_same_side AffineSubspace.SOppSide.transSSameSide
+ (hyz.symm.trans_sOppSide hxy.symm).symm
+#align affine_subspace.s_opp_side.trans_s_same_side AffineSubspace.SOppSide.trans_sSameSide
-theorem SOppSide.transWOppSide {s : AffineSubspace R P} {x y z : P} (hxy : s.SOppSide x y)
+theorem SOppSide.trans_wOppSide {s : AffineSubspace R P} {x y z : P} (hxy : s.SOppSide x y)
(hyz : s.WOppSide y z) : s.WSameSide x z :=
- (hyz.symm.transSOppSide hxy.symm).symm
-#align affine_subspace.s_opp_side.trans_w_opp_side AffineSubspace.SOppSide.transWOppSide
+ (hyz.symm.trans_sOppSide hxy.symm).symm
+#align affine_subspace.s_opp_side.trans_w_opp_side AffineSubspace.SOppSide.trans_wOppSide
theorem SOppSide.trans {s : AffineSubspace R P} {x y z : P} (hxy : s.SOppSide x y)
(hyz : s.SOppSide y z) : s.SSameSide x z :=
- ⟨hxy.transWOppSide hyz.1, hxy.2.1, hyz.2.2⟩
+ ⟨hxy.trans_wOppSide hyz.1, hxy.2.1, hyz.2.2⟩
#align affine_subspace.s_opp_side.trans AffineSubspace.SOppSide.trans
theorem wSameSide_and_wOppSide_iff {s : AffineSubspace R P} {x y : P} :
@@ -698,7 +699,7 @@ theorem SOppSide.not_sSameSide {s : AffineSubspace R P} {x y : P} (h : s.SOppSid
theorem wOppSide_iff_exists_wbtw {s : AffineSubspace R P} {x y : P} :
s.WOppSide x y ↔ ∃ p ∈ s, Wbtw R x p y :=
by
- refine' ⟨fun h => _, fun ⟨p, hp, h⟩ => h.wOppSide₁₃ hp⟩
+ refine' ⟨fun h => _, fun ⟨p, hp, h⟩ => h.w_opp_side₁₃ hp⟩
rcases h with ⟨p₁, hp₁, p₂, hp₂, h | h | ⟨r₁, r₂, hr₁, hr₂, h⟩⟩
· rw [vsub_eq_zero_iff_eq] at h
rw [h]
@@ -732,7 +733,7 @@ theorem SOppSide.exists_sbtw {s : AffineSubspace R P} {x y : P} (h : s.SOppSide
exact h.2.2 hp
#align affine_subspace.s_opp_side.exists_sbtw AffineSubspace.SOppSide.exists_sbtw
-theorem Sbtw.sOppSideOfNotMemOfMem {s : AffineSubspace R P} {x y z : P} (h : Sbtw R x y z)
+theorem Sbtw.sOppSide_of_not_mem_of_mem {s : AffineSubspace R P} {x y z : P} (h : Sbtw R x y z)
(hx : x ∉ s) (hy : y ∈ s) : s.SOppSide x z :=
by
refine' ⟨h.wbtw.w_opp_side₁₃ hy, hx, fun hz => hx _⟩
@@ -745,53 +746,53 @@ theorem Sbtw.sOppSideOfNotMemOfMem {s : AffineSubspace R P} {x y z : P} (h : Sbt
rw [vadd_vsub_assoc, ← neg_vsub_eq_vsub_rev z, ← neg_one_smul R (z -ᵥ x), ← add_smul, ←
sub_eq_add_neg, s.direction.smul_mem_iff (sub_ne_zero_of_ne ht)] at hy'
rwa [vadd_mem_iff_mem_of_mem_direction (Submodule.smul_mem _ _ hy')] at hy
-#align sbtw.s_opp_side_of_not_mem_of_mem Sbtw.sOppSideOfNotMemOfMem
+#align sbtw.s_opp_side_of_not_mem_of_mem Sbtw.sOppSide_of_not_mem_of_mem
-theorem sSameSideSmulVsubVaddLeft {s : AffineSubspace R P} {x p₁ p₂ : P} (hx : x ∉ s) (hp₁ : p₁ ∈ s)
- (hp₂ : p₂ ∈ s) {t : R} (ht : 0 < t) : s.SSameSide (t • (x -ᵥ p₁) +ᵥ p₂) x :=
+theorem sSameSide_smul_vsub_vadd_left {s : AffineSubspace R P} {x p₁ p₂ : P} (hx : x ∉ s)
+ (hp₁ : p₁ ∈ s) (hp₂ : p₂ ∈ s) {t : R} (ht : 0 < t) : s.SSameSide (t • (x -ᵥ p₁) +ᵥ p₂) x :=
by
refine' ⟨w_same_side_smul_vsub_vadd_left x hp₁ hp₂ ht.le, fun h => hx _, hx⟩
rwa [vadd_mem_iff_mem_direction _ hp₂, s.direction.smul_mem_iff ht.ne.symm,
vsub_right_mem_direction_iff_mem hp₁] at h
-#align affine_subspace.s_same_side_smul_vsub_vadd_left AffineSubspace.sSameSideSmulVsubVaddLeft
+#align affine_subspace.s_same_side_smul_vsub_vadd_left AffineSubspace.sSameSide_smul_vsub_vadd_left
-theorem sSameSideSmulVsubVaddRight {s : AffineSubspace R P} {x p₁ p₂ : P} (hx : x ∉ s)
+theorem sSameSide_smul_vsub_vadd_right {s : AffineSubspace R P} {x p₁ p₂ : P} (hx : x ∉ s)
(hp₁ : p₁ ∈ s) (hp₂ : p₂ ∈ s) {t : R} (ht : 0 < t) : s.SSameSide x (t • (x -ᵥ p₁) +ᵥ p₂) :=
- (sSameSideSmulVsubVaddLeft hx hp₁ hp₂ ht).symm
-#align affine_subspace.s_same_side_smul_vsub_vadd_right AffineSubspace.sSameSideSmulVsubVaddRight
+ (sSameSide_smul_vsub_vadd_left hx hp₁ hp₂ ht).symm
+#align affine_subspace.s_same_side_smul_vsub_vadd_right AffineSubspace.sSameSide_smul_vsub_vadd_right
-theorem sSameSideLineMapLeft {s : AffineSubspace R P} {x y : P} (hx : x ∈ s) (hy : y ∉ s) {t : R}
+theorem sSameSide_lineMap_left {s : AffineSubspace R P} {x y : P} (hx : x ∈ s) (hy : y ∉ s) {t : R}
(ht : 0 < t) : s.SSameSide (lineMap x y t) y :=
- sSameSideSmulVsubVaddLeft hy hx hx ht
-#align affine_subspace.s_same_side_line_map_left AffineSubspace.sSameSideLineMapLeft
+ sSameSide_smul_vsub_vadd_left hy hx hx ht
+#align affine_subspace.s_same_side_line_map_left AffineSubspace.sSameSide_lineMap_left
-theorem sSameSideLineMapRight {s : AffineSubspace R P} {x y : P} (hx : x ∈ s) (hy : y ∉ s) {t : R}
+theorem sSameSide_lineMap_right {s : AffineSubspace R P} {x y : P} (hx : x ∈ s) (hy : y ∉ s) {t : R}
(ht : 0 < t) : s.SSameSide y (lineMap x y t) :=
- (sSameSideLineMapLeft hx hy ht).symm
-#align affine_subspace.s_same_side_line_map_right AffineSubspace.sSameSideLineMapRight
+ (sSameSide_lineMap_left hx hy ht).symm
+#align affine_subspace.s_same_side_line_map_right AffineSubspace.sSameSide_lineMap_right
-theorem sOppSideSmulVsubVaddLeft {s : AffineSubspace R P} {x p₁ p₂ : P} (hx : x ∉ s) (hp₁ : p₁ ∈ s)
- (hp₂ : p₂ ∈ s) {t : R} (ht : t < 0) : s.SOppSide (t • (x -ᵥ p₁) +ᵥ p₂) x :=
+theorem sOppSide_smul_vsub_vadd_left {s : AffineSubspace R P} {x p₁ p₂ : P} (hx : x ∉ s)
+ (hp₁ : p₁ ∈ s) (hp₂ : p₂ ∈ s) {t : R} (ht : t < 0) : s.SOppSide (t • (x -ᵥ p₁) +ᵥ p₂) x :=
by
refine' ⟨w_opp_side_smul_vsub_vadd_left x hp₁ hp₂ ht.le, fun h => hx _, hx⟩
rwa [vadd_mem_iff_mem_direction _ hp₂, s.direction.smul_mem_iff ht.ne,
vsub_right_mem_direction_iff_mem hp₁] at h
-#align affine_subspace.s_opp_side_smul_vsub_vadd_left AffineSubspace.sOppSideSmulVsubVaddLeft
+#align affine_subspace.s_opp_side_smul_vsub_vadd_left AffineSubspace.sOppSide_smul_vsub_vadd_left
-theorem sOppSideSmulVsubVaddRight {s : AffineSubspace R P} {x p₁ p₂ : P} (hx : x ∉ s) (hp₁ : p₁ ∈ s)
- (hp₂ : p₂ ∈ s) {t : R} (ht : t < 0) : s.SOppSide x (t • (x -ᵥ p₁) +ᵥ p₂) :=
- (sOppSideSmulVsubVaddLeft hx hp₁ hp₂ ht).symm
-#align affine_subspace.s_opp_side_smul_vsub_vadd_right AffineSubspace.sOppSideSmulVsubVaddRight
+theorem sOppSide_smul_vsub_vadd_right {s : AffineSubspace R P} {x p₁ p₂ : P} (hx : x ∉ s)
+ (hp₁ : p₁ ∈ s) (hp₂ : p₂ ∈ s) {t : R} (ht : t < 0) : s.SOppSide x (t • (x -ᵥ p₁) +ᵥ p₂) :=
+ (sOppSide_smul_vsub_vadd_left hx hp₁ hp₂ ht).symm
+#align affine_subspace.s_opp_side_smul_vsub_vadd_right AffineSubspace.sOppSide_smul_vsub_vadd_right
-theorem sOppSideLineMapLeft {s : AffineSubspace R P} {x y : P} (hx : x ∈ s) (hy : y ∉ s) {t : R}
+theorem sOppSide_lineMap_left {s : AffineSubspace R P} {x y : P} (hx : x ∈ s) (hy : y ∉ s) {t : R}
(ht : t < 0) : s.SOppSide (lineMap x y t) y :=
- sOppSideSmulVsubVaddLeft hy hx hx ht
-#align affine_subspace.s_opp_side_line_map_left AffineSubspace.sOppSideLineMapLeft
+ sOppSide_smul_vsub_vadd_left hy hx hx ht
+#align affine_subspace.s_opp_side_line_map_left AffineSubspace.sOppSide_lineMap_left
-theorem sOppSideLineMapRight {s : AffineSubspace R P} {x y : P} (hx : x ∈ s) (hy : y ∉ s) {t : R}
+theorem sOppSide_lineMap_right {s : AffineSubspace R P} {x y : P} (hx : x ∈ s) (hy : y ∉ s) {t : R}
(ht : t < 0) : s.SOppSide y (lineMap x y t) :=
- (sOppSideLineMapLeft hx hy ht).symm
-#align affine_subspace.s_opp_side_line_map_right AffineSubspace.sOppSideLineMapRight
+ (sOppSide_lineMap_left hx hy ht).symm
+#align affine_subspace.s_opp_side_line_map_right AffineSubspace.sOppSide_lineMap_right
theorem setOf_wSameSide_eq_image2 {s : AffineSubspace R P} {x p : P} (hx : x ∉ s) (hp : p ∈ s) :
{ y | s.WSameSide x y } = Set.image2 (fun (t : R) q => t • (x -ᵥ p) +ᵥ q) (Set.Ici 0) s :=
@@ -871,17 +872,17 @@ theorem setOf_sOppSide_eq_image2 {s : AffineSubspace R P} {x p : P} (hx : x ∉
exact s_opp_side_smul_vsub_vadd_right hx hp hp' ht
#align affine_subspace.set_of_s_opp_side_eq_image2 AffineSubspace.setOf_sOppSide_eq_image2
-theorem wOppSidePointReflection {s : AffineSubspace R P} {x : P} (y : P) (hx : x ∈ s) :
+theorem wOppSide_pointReflection {s : AffineSubspace R P} {x : P} (y : P) (hx : x ∈ s) :
s.WOppSide y (pointReflection R x y) :=
- (wbtw_pointReflection R _ _).wOppSide₁₃ hx
-#align affine_subspace.w_opp_side_point_reflection AffineSubspace.wOppSidePointReflection
+ (wbtw_pointReflection R _ _).w_opp_side₁₃ hx
+#align affine_subspace.w_opp_side_point_reflection AffineSubspace.wOppSide_pointReflection
-theorem sOppSidePointReflection {s : AffineSubspace R P} {x y : P} (hx : x ∈ s) (hy : y ∉ s) :
+theorem sOppSide_pointReflection {s : AffineSubspace R P} {x y : P} (hx : x ∈ s) (hy : y ∉ s) :
s.SOppSide y (pointReflection R x y) :=
by
- refine' (sbtw_pointReflection_of_ne R fun h => hy _).sOppSideOfNotMemOfMem hy hx
+ refine' (sbtw_pointReflection_of_ne R fun h => hy _).sOppSide_of_not_mem_of_mem hy hx
rwa [← h]
-#align affine_subspace.s_opp_side_point_reflection AffineSubspace.sOppSidePointReflection
+#align affine_subspace.s_opp_side_point_reflection AffineSubspace.sOppSide_pointReflection
end LinearOrderedField
mathlib commit https://github.com/leanprover-community/mathlib/commit/4c586d291f189eecb9d00581aeb3dd998ac34442
@@ -45,7 +45,7 @@ variable [AddCommGroup V'] [Module R V'] [AddTorsor V' P']
include V
-/- ./././Mathport/Syntax/Translate/Basic.lean:628:2: warning: expanding binder collection (p₁ p₂ «expr ∈ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (p₁ p₂ «expr ∈ » s) -/
/-- The points `x` and `y` are weakly on the same side of `s`. -/
def WSameSide (s : AffineSubspace R P) (x y : P) : Prop :=
∃ (p₁ : _)(_ : p₁ ∈ s)(p₂ : _)(_ : p₂ ∈ s), SameRay R (x -ᵥ p₁) (y -ᵥ p₂)
@@ -56,7 +56,7 @@ def SSameSide (s : AffineSubspace R P) (x y : P) : Prop :=
s.WSameSide x y ∧ x ∉ s ∧ y ∉ s
#align affine_subspace.s_same_side AffineSubspace.SSameSide
-/- ./././Mathport/Syntax/Translate/Basic.lean:628:2: warning: expanding binder collection (p₁ p₂ «expr ∈ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (p₁ p₂ «expr ∈ » s) -/
/-- The points `x` and `y` are weakly on opposite sides of `s`. -/
def WOppSide (s : AffineSubspace R P) (x y : P) : Prop :=
∃ (p₁ : _)(_ : p₁ ∈ s)(p₂ : _)(_ : p₂ ∈ s), SameRay R (x -ᵥ p₁) (p₂ -ᵥ y)
mathlib commit https://github.com/leanprover-community/mathlib/commit/eb0cb4511aaef0da2462207b67358a0e1fe1e2ee
@@ -215,10 +215,10 @@ theorem wOppSide_comm {s : AffineSubspace R P} {x y : P} : s.WOppSide x y ↔ s.
constructor
· rintro ⟨p₁, hp₁, p₂, hp₂, h⟩
refine' ⟨p₂, hp₂, p₁, hp₁, _⟩
- rwa [sameRay_comm, ← sameRay_neg_iff, neg_vsub_eq_vsub_rev, neg_vsub_eq_vsub_rev]
+ rwa [SameRay.sameRay_comm, ← sameRay_neg_iff, neg_vsub_eq_vsub_rev, neg_vsub_eq_vsub_rev]
· rintro ⟨p₁, hp₁, p₂, hp₂, h⟩
refine' ⟨p₂, hp₂, p₁, hp₁, _⟩
- rwa [sameRay_comm, ← sameRay_neg_iff, neg_vsub_eq_vsub_rev, neg_vsub_eq_vsub_rev]
+ rwa [SameRay.sameRay_comm, ← sameRay_neg_iff, neg_vsub_eq_vsub_rev, neg_vsub_eq_vsub_rev]
#align affine_subspace.w_opp_side_comm AffineSubspace.wOppSide_comm
alias w_opp_side_comm ↔ w_opp_side.symm _
@@ -340,7 +340,7 @@ theorem wSameSideSmulVsubVaddLeft {s : AffineSubspace R P} {p₁ p₂ : P} (x :
by
refine' ⟨p₂, hp₂, p₁, hp₁, _⟩
rw [vadd_vsub]
- exact sameRay_nonneg_smul_left _ ht
+ exact SameRay.sameRay_nonneg_smul_left _ ht
#align affine_subspace.w_same_side_smul_vsub_vadd_left AffineSubspace.wSameSideSmulVsubVaddLeft
theorem wSameSideSmulVsubVaddRight {s : AffineSubspace R P} {p₁ p₂ : P} (x : P) (hp₁ : p₁ ∈ s)
@@ -363,7 +363,7 @@ theorem wOppSideSmulVsubVaddLeft {s : AffineSubspace R P} {p₁ p₂ : P} (x : P
by
refine' ⟨p₂, hp₂, p₁, hp₁, _⟩
rw [vadd_vsub, ← neg_neg t, neg_smul, ← smul_neg, neg_vsub_eq_vsub_rev]
- exact sameRay_nonneg_smul_left _ (neg_nonneg.2 ht)
+ exact SameRay.sameRay_nonneg_smul_left _ (neg_nonneg.2 ht)
#align affine_subspace.w_opp_side_smul_vsub_vadd_left AffineSubspace.wOppSideSmulVsubVaddLeft
theorem wOppSideSmulVsubVaddRight {s : AffineSubspace R P} {p₁ p₂ : P} (x : P) (hp₁ : p₁ ∈ s)
@@ -472,7 +472,7 @@ theorem wSameSide_iff_exists_right {s : AffineSubspace R P} {x y p₂ : P} (h :
s.WSameSide x y ↔ y ∈ s ∨ ∃ p₁ ∈ s, SameRay R (x -ᵥ p₁) (y -ᵥ p₂) :=
by
rw [w_same_side_comm, w_same_side_iff_exists_left h]
- simp_rw [sameRay_comm]
+ simp_rw [SameRay.sameRay_comm]
#align affine_subspace.w_same_side_iff_exists_right AffineSubspace.wSameSide_iff_exists_right
theorem sSameSide_iff_exists_left {s : AffineSubspace R P} {x y p₁ : P} (h : p₁ ∈ s) :
@@ -487,7 +487,7 @@ theorem sSameSide_iff_exists_right {s : AffineSubspace R P} {x y p₂ : P} (h :
s.SSameSide x y ↔ x ∉ s ∧ y ∉ s ∧ ∃ p₁ ∈ s, SameRay R (x -ᵥ p₁) (y -ᵥ p₂) :=
by
rw [s_same_side_comm, s_same_side_iff_exists_left h, ← and_assoc', and_comm' (y ∉ s), and_assoc']
- simp_rw [sameRay_comm]
+ simp_rw [SameRay.sameRay_comm]
#align affine_subspace.s_same_side_iff_exists_right AffineSubspace.sSameSide_iff_exists_right
theorem wOppSide_iff_exists_left {s : AffineSubspace R P} {x y p₁ : P} (h : p₁ ∈ s) :
@@ -521,11 +521,11 @@ theorem wOppSide_iff_exists_right {s : AffineSubspace R P} {x y p₂ : P} (h : p
· rintro (hy | ⟨p, hp, hr⟩)
· exact Or.inl hy
refine' Or.inr ⟨p, hp, _⟩
- rwa [sameRay_comm, ← sameRay_neg_iff, neg_vsub_eq_vsub_rev, neg_vsub_eq_vsub_rev]
+ rwa [SameRay.sameRay_comm, ← sameRay_neg_iff, neg_vsub_eq_vsub_rev, neg_vsub_eq_vsub_rev]
· rintro (hy | ⟨p, hp, hr⟩)
· exact Or.inl hy
refine' Or.inr ⟨p, hp, _⟩
- rwa [sameRay_comm, ← sameRay_neg_iff, neg_vsub_eq_vsub_rev, neg_vsub_eq_vsub_rev]
+ rwa [SameRay.sameRay_comm, ← sameRay_neg_iff, neg_vsub_eq_vsub_rev, neg_vsub_eq_vsub_rev]
#align affine_subspace.w_opp_side_iff_exists_right AffineSubspace.wOppSide_iff_exists_right
theorem sOppSide_iff_exists_left {s : AffineSubspace R P} {x y p₁ : P} (h : p₁ ∈ s) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
mul
-div
cancellation lemmas (#11530)
Lemma names around cancellation of multiplication and division are a mess.
This PR renames a handful of them according to the following table (each big row contains the multiplicative statement, then the three rows contain the GroupWithZero
lemma name, the Group
lemma, the AddGroup
lemma name).
| Statement | New name | Old name | |
@@ -445,7 +445,7 @@ theorem wSameSide_iff_exists_left {s : AffineSubspace R P} {x y p₁ : P} (h : p
exact SameRay.zero_right _
· refine' Or.inr ⟨(r₁ / r₂) • (p₁ -ᵥ p₁') +ᵥ p₂', s.smul_vsub_vadd_mem _ h hp₁' hp₂',
Or.inr (Or.inr ⟨r₁, r₂, hr₁, hr₂, _⟩)⟩
- rw [vsub_vadd_eq_vsub_sub, smul_sub, ← hr, smul_smul, mul_div_cancel' _ hr₂.ne.symm,
+ rw [vsub_vadd_eq_vsub_sub, smul_sub, ← hr, smul_smul, mul_div_cancel₀ _ hr₂.ne.symm,
← smul_sub, vsub_sub_vsub_cancel_right]
· rintro (h' | ⟨h₁, h₂, h₃⟩)
· exact wSameSide_of_left_mem y h'
@@ -484,7 +484,7 @@ theorem wOppSide_iff_exists_left {s : AffineSubspace R P} {x y p₁ : P} (h : p
· refine' Or.inr ⟨(-r₁ / r₂) • (p₁ -ᵥ p₁') +ᵥ p₂', s.smul_vsub_vadd_mem _ h hp₁' hp₂',
Or.inr (Or.inr ⟨r₁, r₂, hr₁, hr₂, _⟩)⟩
rw [vadd_vsub_assoc, smul_add, ← hr, smul_smul, neg_div, mul_neg,
- mul_div_cancel' _ hr₂.ne.symm, neg_smul, neg_add_eq_sub, ← smul_sub,
+ mul_div_cancel₀ _ hr₂.ne.symm, neg_smul, neg_add_eq_sub, ← smul_sub,
vsub_sub_vsub_cancel_right]
· rintro (h' | ⟨h₁, h₂, h₃⟩)
· exact wOppSide_of_left_mem y h'
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)
@@ -37,7 +37,6 @@ namespace AffineSubspace
section StrictOrderedCommRing
variable [StrictOrderedCommRing R] [AddCommGroup V] [Module R V] [AddTorsor V P]
-
variable [AddCommGroup V'] [Module R V'] [AddTorsor V' P']
/-- The points `x` and `y` are weakly on the same side of `s`. -/
@@ -416,7 +415,6 @@ end StrictOrderedCommRing
section LinearOrderedField
variable [LinearOrderedField R] [AddCommGroup V] [Module R V] [AddTorsor V P]
-
variable [AddCommGroup V'] [Module R V'] [AddTorsor V' P']
@[simp]
@@ -855,7 +853,6 @@ end LinearOrderedField
section Normed
variable [SeminormedAddCommGroup V] [NormedSpace ℝ V] [PseudoMetricSpace P]
-
variable [NormedAddTorsor V P]
theorem isConnected_setOf_wSameSide {s : AffineSubspace ℝ P} (x : P) (h : (s : Set P).Nonempty) :
Set.image2
etc (#9275)
Set.image2
to use ∃ a ∈ s, ∃ b ∈ t, f a b = c
instead of ∃ a b, a ∈ s ∧ b ∈ t ∧ f a b = c
.Set.seq
as Set.image2
. The new definition is equal to the old one but rw [Set.seq]
gives a different result.Filter.map₂
to use ∃ u ∈ f, ∃ v ∈ g, image2 m u v ⊆ s
instead of ∃ u v, u ∈ f ∧ v ∈ g ∧ ...
Set.mem_image2
, Finset.mem_image₂
, Set.mem_mul
, Finset.mem_div
etcThe two reasons to make the change are:
∃ a ∈ s, ∃ b ∈ t, _
is a simp
-normal form, and@@ -775,12 +775,12 @@ theorem setOf_wSameSide_eq_image2 {s : AffineSubspace R P} {x p : P} (hx : x ∉
· rw [vsub_eq_zero_iff_eq] at h
exact False.elim (hx (h.symm ▸ hp))
· rw [vsub_eq_zero_iff_eq] at h
- refine' ⟨0, p₂, le_refl _, hp₂, _⟩
+ refine' ⟨0, le_rfl, p₂, hp₂, _⟩
simp [h]
- · refine' ⟨r₁ / r₂, p₂, (div_pos hr₁ hr₂).le, hp₂, _⟩
+ · refine' ⟨r₁ / r₂, (div_pos hr₁ hr₂).le, p₂, hp₂, _⟩
rw [div_eq_inv_mul, ← smul_smul, h, smul_smul, inv_mul_cancel hr₂.ne.symm, one_smul,
vsub_vadd]
- · rintro ⟨t, p', ht, hp', rfl⟩
+ · rintro ⟨t, ht, p', hp', rfl⟩
exact wSameSide_smul_vsub_vadd_right x hp hp' ht
#align affine_subspace.set_of_w_same_side_eq_image2 AffineSubspace.setOf_wSameSide_eq_image2
@@ -795,10 +795,10 @@ theorem setOf_sSameSide_eq_image2 {s : AffineSubspace R P} {x p : P} (hx : x ∉
exact False.elim (hx (h.symm ▸ hp))
· rw [vsub_eq_zero_iff_eq] at h
exact False.elim (hy (h.symm ▸ hp₂))
- · refine' ⟨r₁ / r₂, p₂, div_pos hr₁ hr₂, hp₂, _⟩
+ · refine' ⟨r₁ / r₂, div_pos hr₁ hr₂, p₂, hp₂, _⟩
rw [div_eq_inv_mul, ← smul_smul, h, smul_smul, inv_mul_cancel hr₂.ne.symm, one_smul,
vsub_vadd]
- · rintro ⟨t, p', ht, hp', rfl⟩
+ · rintro ⟨t, ht, p', hp', rfl⟩
exact sSameSide_smul_vsub_vadd_right hx hp hp' ht
#align affine_subspace.set_of_s_same_side_eq_image2 AffineSubspace.setOf_sSameSide_eq_image2
@@ -812,12 +812,12 @@ theorem setOf_wOppSide_eq_image2 {s : AffineSubspace R P} {x p : P} (hx : x ∉
· rw [vsub_eq_zero_iff_eq] at h
exact False.elim (hx (h.symm ▸ hp))
· rw [vsub_eq_zero_iff_eq] at h
- refine' ⟨0, p₂, le_refl _, hp₂, _⟩
+ refine' ⟨0, le_rfl, p₂, hp₂, _⟩
simp [h]
- · refine' ⟨-r₁ / r₂, p₂, (div_neg_of_neg_of_pos (Left.neg_neg_iff.2 hr₁) hr₂).le, hp₂, _⟩
+ · refine' ⟨-r₁ / r₂, (div_neg_of_neg_of_pos (Left.neg_neg_iff.2 hr₁) hr₂).le, p₂, hp₂, _⟩
rw [div_eq_inv_mul, ← smul_smul, neg_smul, h, smul_neg, smul_smul, inv_mul_cancel hr₂.ne.symm,
one_smul, neg_vsub_eq_vsub_rev, vsub_vadd]
- · rintro ⟨t, p', ht, hp', rfl⟩
+ · rintro ⟨t, ht, p', hp', rfl⟩
exact wOppSide_smul_vsub_vadd_right x hp hp' ht
#align affine_subspace.set_of_w_opp_side_eq_image2 AffineSubspace.setOf_wOppSide_eq_image2
@@ -832,10 +832,10 @@ theorem setOf_sOppSide_eq_image2 {s : AffineSubspace R P} {x p : P} (hx : x ∉
exact False.elim (hx (h.symm ▸ hp))
· rw [vsub_eq_zero_iff_eq] at h
exact False.elim (hy (h ▸ hp₂))
- · refine' ⟨-r₁ / r₂, p₂, div_neg_of_neg_of_pos (Left.neg_neg_iff.2 hr₁) hr₂, hp₂, _⟩
+ · refine' ⟨-r₁ / r₂, div_neg_of_neg_of_pos (Left.neg_neg_iff.2 hr₁) hr₂, p₂, hp₂, _⟩
rw [div_eq_inv_mul, ← smul_smul, neg_smul, h, smul_neg, smul_smul, inv_mul_cancel hr₂.ne.symm,
one_smul, neg_vsub_eq_vsub_rev, vsub_vadd]
- · rintro ⟨t, p', ht, hp', rfl⟩
+ · rintro ⟨t, ht, p', hp', rfl⟩
exact sOppSide_smul_vsub_vadd_right hx hp hp' ht
#align affine_subspace.set_of_s_opp_side_eq_image2 AffineSubspace.setOf_sOppSide_eq_image2
∃ x ∈ s, _
instead of ∃ (x) (_ : x ∈ s), _
(#9184)
Search for [∀∃].*(_
and manually replace some occurrences with more readable versions.
In case of ∀
, the new expressions are defeq to the old ones.
In case of ∃
, they differ by exists_prop
.
In some rare cases, golf proofs that needed fixing.
@@ -42,7 +42,7 @@ variable [AddCommGroup V'] [Module R V'] [AddTorsor V' P']
/-- The points `x` and `y` are weakly on the same side of `s`. -/
def WSameSide (s : AffineSubspace R P) (x y : P) : Prop :=
- ∃ (p₁ : _) (_ : p₁ ∈ s) (p₂ : _) (_ : p₂ ∈ s), SameRay R (x -ᵥ p₁) (y -ᵥ p₂)
+ ∃ᵉ (p₁ ∈ s) (p₂ ∈ s), SameRay R (x -ᵥ p₁) (y -ᵥ p₂)
#align affine_subspace.w_same_side AffineSubspace.WSameSide
/-- The points `x` and `y` are strictly on the same side of `s`. -/
@@ -52,7 +52,7 @@ def SSameSide (s : AffineSubspace R P) (x y : P) : Prop :=
/-- The points `x` and `y` are weakly on opposite sides of `s`. -/
def WOppSide (s : AffineSubspace R P) (x y : P) : Prop :=
- ∃ (p₁ : _) (_ : p₁ ∈ s) (p₂ : _) (_ : p₂ ∈ s), SameRay R (x -ᵥ p₁) (p₂ -ᵥ y)
+ ∃ᵉ (p₁ ∈ s) (p₂ ∈ s), SameRay R (x -ᵥ p₁) (p₂ -ᵥ y)
#align affine_subspace.w_opp_side AffineSubspace.WOppSide
/-- The points `x` and `y` are strictly on opposite sides of `s`. -/
@@ -140,22 +140,22 @@ theorem _root_.AffineEquiv.sOppSide_map_iff {s : AffineSubspace R P} {x y : P} (
theorem WSameSide.nonempty {s : AffineSubspace R P} {x y : P} (h : s.WSameSide x y) :
(s : Set P).Nonempty :=
- ⟨h.choose, h.choose_spec.choose⟩
+ ⟨h.choose, h.choose_spec.left⟩
#align affine_subspace.w_same_side.nonempty AffineSubspace.WSameSide.nonempty
theorem SSameSide.nonempty {s : AffineSubspace R P} {x y : P} (h : s.SSameSide x y) :
(s : Set P).Nonempty :=
- ⟨h.1.choose, h.1.choose_spec.choose⟩
+ ⟨h.1.choose, h.1.choose_spec.left⟩
#align affine_subspace.s_same_side.nonempty AffineSubspace.SSameSide.nonempty
theorem WOppSide.nonempty {s : AffineSubspace R P} {x y : P} (h : s.WOppSide x y) :
(s : Set P).Nonempty :=
- ⟨h.choose, h.choose_spec.choose⟩
+ ⟨h.choose, h.choose_spec.left⟩
#align affine_subspace.w_opp_side.nonempty AffineSubspace.WOppSide.nonempty
theorem SOppSide.nonempty {s : AffineSubspace R P} {x y : P} (h : s.SOppSide x y) :
(s : Set P).Nonempty :=
- ⟨h.1.choose, h.1.choose_spec.choose⟩
+ ⟨h.1.choose, h.1.choose_spec.left⟩
#align affine_subspace.s_opp_side.nonempty AffineSubspace.SOppSide.nonempty
theorem SSameSide.wSameSide {s : AffineSubspace R P} {x y : P} (h : s.SSameSide x y) :
@@ -189,14 +189,14 @@ theorem wSameSide_comm {s : AffineSubspace R P} {x y : P} : s.WSameSide x y ↔
fun ⟨p₁, hp₁, p₂, hp₂, h⟩ => ⟨p₂, hp₂, p₁, hp₁, h.symm⟩⟩
#align affine_subspace.w_same_side_comm AffineSubspace.wSameSide_comm
-alias wSameSide_comm ↔ WSameSide.symm _
+alias ⟨WSameSide.symm, _⟩ := wSameSide_comm
#align affine_subspace.w_same_side.symm AffineSubspace.WSameSide.symm
theorem sSameSide_comm {s : AffineSubspace R P} {x y : P} : s.SSameSide x y ↔ s.SSameSide y x := by
rw [SSameSide, SSameSide, wSameSide_comm, and_comm (b := x ∉ s)]
#align affine_subspace.s_same_side_comm AffineSubspace.sSameSide_comm
-alias sSameSide_comm ↔ SSameSide.symm _
+alias ⟨SSameSide.symm, _⟩ := sSameSide_comm
#align affine_subspace.s_same_side.symm AffineSubspace.SSameSide.symm
theorem wOppSide_comm {s : AffineSubspace R P} {x y : P} : s.WOppSide x y ↔ s.WOppSide y x := by
@@ -209,14 +209,14 @@ theorem wOppSide_comm {s : AffineSubspace R P} {x y : P} : s.WOppSide x y ↔ s.
rwa [SameRay.sameRay_comm, ← sameRay_neg_iff, neg_vsub_eq_vsub_rev, neg_vsub_eq_vsub_rev]
#align affine_subspace.w_opp_side_comm AffineSubspace.wOppSide_comm
-alias wOppSide_comm ↔ WOppSide.symm _
+alias ⟨WOppSide.symm, _⟩ := wOppSide_comm
#align affine_subspace.w_opp_side.symm AffineSubspace.WOppSide.symm
theorem sOppSide_comm {s : AffineSubspace R P} {x y : P} : s.SOppSide x y ↔ s.SOppSide y x := by
rw [SOppSide, SOppSide, wOppSide_comm, and_comm (b := x ∉ s)]
#align affine_subspace.s_opp_side_comm AffineSubspace.sOppSide_comm
-alias sOppSide_comm ↔ SOppSide.symm _
+alias ⟨SOppSide.symm, _⟩ := sOppSide_comm
#align affine_subspace.s_opp_side.symm AffineSubspace.SOppSide.symm
theorem not_wSameSide_bot (x y : P) : ¬(⊥ : AffineSubspace R P).WSameSide x y :=
The major change here is adapting to simp
failing if it makes no progress.
The vast majority of the redundant simp
s found due to this change were extracted to #6632.
Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Eric Wieser <wieser.eric@gmail.com>
@@ -398,8 +398,11 @@ theorem _root_.Wbtw.wOppSide₁₃ {s : AffineSubspace R P} {x y z : P} (h : Wbt
rcases ht0.lt_or_eq with (ht0' | rfl); swap
· rw [lineMap_apply_zero]; simp
refine' Or.inr (Or.inr ⟨1 - t, t, sub_pos.2 ht1', ht0', _⟩)
- simp_rw [lineMap_apply, vadd_vsub_assoc, vsub_vadd_eq_vsub_sub, ← neg_vsub_eq_vsub_rev z x,
- vsub_self, zero_sub, ← neg_one_smul R (z -ᵥ x), ← add_smul, smul_neg, ← neg_smul, smul_smul]
+ -- TODO: after lean4#2336 "simp made no progress feature"
+ -- had to add `_` to several lemmas here. Not sure why!
+ simp_rw [lineMap_apply _, vadd_vsub_assoc _, vsub_vadd_eq_vsub_sub _,
+ ← neg_vsub_eq_vsub_rev z x, vsub_self _, zero_sub, ← neg_one_smul R (z -ᵥ x),
+ ← add_smul, smul_neg, ← neg_smul, smul_smul]
ring_nf
#align wbtw.w_opp_side₁₃ Wbtw.wOppSide₁₃
@@ -765,7 +765,7 @@ theorem sOppSide_lineMap_right {s : AffineSubspace R P} {x y : P} (hx : x ∈ s)
theorem setOf_wSameSide_eq_image2 {s : AffineSubspace R P} {x p : P} (hx : x ∉ s) (hp : p ∈ s) :
{ y | s.WSameSide x y } = Set.image2 (fun (t : R) q => t • (x -ᵥ p) +ᵥ q) (Set.Ici 0) s := by
ext y
- simp_rw [Set.mem_setOf, Set.mem_image2, Set.mem_Ici, mem_coe]
+ simp_rw [Set.mem_setOf, Set.mem_image2, Set.mem_Ici]
constructor
· rw [wSameSide_iff_exists_left hp, or_iff_right hx]
rintro ⟨p₂, hp₂, h | h | ⟨r₁, r₂, hr₁, hr₂, h⟩⟩
@@ -784,7 +784,7 @@ theorem setOf_wSameSide_eq_image2 {s : AffineSubspace R P} {x p : P} (hx : x ∉
theorem setOf_sSameSide_eq_image2 {s : AffineSubspace R P} {x p : P} (hx : x ∉ s) (hp : p ∈ s) :
{ y | s.SSameSide x y } = Set.image2 (fun (t : R) q => t • (x -ᵥ p) +ᵥ q) (Set.Ioi 0) s := by
ext y
- simp_rw [Set.mem_setOf, Set.mem_image2, Set.mem_Ioi, mem_coe]
+ simp_rw [Set.mem_setOf, Set.mem_image2, Set.mem_Ioi]
constructor
· rw [sSameSide_iff_exists_left hp]
rintro ⟨-, hy, p₂, hp₂, h | h | ⟨r₁, r₂, hr₁, hr₂, h⟩⟩
@@ -802,7 +802,7 @@ theorem setOf_sSameSide_eq_image2 {s : AffineSubspace R P} {x p : P} (hx : x ∉
theorem setOf_wOppSide_eq_image2 {s : AffineSubspace R P} {x p : P} (hx : x ∉ s) (hp : p ∈ s) :
{ y | s.WOppSide x y } = Set.image2 (fun (t : R) q => t • (x -ᵥ p) +ᵥ q) (Set.Iic 0) s := by
ext y
- simp_rw [Set.mem_setOf, Set.mem_image2, Set.mem_Iic, mem_coe]
+ simp_rw [Set.mem_setOf, Set.mem_image2, Set.mem_Iic]
constructor
· rw [wOppSide_iff_exists_left hp, or_iff_right hx]
rintro ⟨p₂, hp₂, h | h | ⟨r₁, r₂, hr₁, hr₂, h⟩⟩
@@ -821,7 +821,7 @@ theorem setOf_wOppSide_eq_image2 {s : AffineSubspace R P} {x p : P} (hx : x ∉
theorem setOf_sOppSide_eq_image2 {s : AffineSubspace R P} {x p : P} (hx : x ∉ s) (hp : p ∈ s) :
{ y | s.SOppSide x y } = Set.image2 (fun (t : R) q => t • (x -ᵥ p) +ᵥ q) (Set.Iio 0) s := by
ext y
- simp_rw [Set.mem_setOf, Set.mem_image2, Set.mem_Iio, mem_coe]
+ simp_rw [Set.mem_setOf, Set.mem_image2, Set.mem_Iio]
constructor
· rw [sOppSide_iff_exists_left hp]
rintro ⟨-, hy, p₂, hp₂, h | h | ⟨r₁, r₂, hr₁, hr₂, h⟩⟩
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -28,7 +28,7 @@ This file defines notions of two points being on the same or opposite sides of a
-/
-variable {R V V' P P' : Type _}
+variable {R V V' P P' : Type*}
open AffineEquiv AffineMap
@@ -2,16 +2,13 @@
Copyright (c) 2022 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 analysis.convex.side
-! leanprover-community/mathlib commit a63928c34ec358b5edcda2bf7513c50052a5230f
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.Analysis.Convex.Between
import Mathlib.Analysis.Convex.Normed
import Mathlib.Analysis.Normed.Group.AddTorsor
+#align_import analysis.convex.side from "leanprover-community/mathlib"@"a63928c34ec358b5edcda2bf7513c50052a5230f"
+
/-!
# Sides of affine subspaces
The unported dependencies are
algebra.order.module
init.core
linear_algebra.free_module.finite.rank
algebra.order.monoid.cancel.defs
algebra.abs
algebra.group_power.lemmas
init.data.list.basic
linear_algebra.free_module.rank
algebra.order.monoid.cancel.basic
init.data.list.default
topology.subset_properties
init.logic
The following 1 dependencies have changed in mathlib3 since they were ported, which may complicate porting this file