Skip to content
This repository was archived by the owner on Jul 24, 2024. It is now read-only.

Commit 8348e17

Browse files
committed
feat(linear_algebra/affine_space/affine_subspace): parallel and affine spans (#17526)
Add some lemmas relating `parallel` to affine spans (in general, and in the specific case of the span of two points). Also add `affine_span_eq_bot` used in one proof.
1 parent 4960578 commit 8348e17

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

src/linear_algebra/affine_space/affine_subspace.lean

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1128,6 +1128,12 @@ span_points_nonempty k s
11281128
instance {s : set P} [nonempty s] : nonempty (affine_span k s) :=
11291129
((affine_span_nonempty k s).mpr (nonempty_subtype.mp ‹_›)).to_subtype
11301130

1131+
/-- The affine span of a set is `⊥` if and only if that set is empty. -/
1132+
@[simp] lemma affine_span_eq_bot {s : set P} :
1133+
affine_span k s = ⊥ ↔ s = ∅ :=
1134+
by rw [←not_iff_not, ←ne.def, ←ne.def, ←nonempty_iff_ne_bot, affine_span_nonempty,
1135+
nonempty_iff_ne_empty]
1136+
11311137
variables {k}
11321138

11331139
/-- Suppose a set of vectors spans `V`. Then a point `p`, together
@@ -1632,4 +1638,24 @@ begin
16321638
{ simpa using hd.symm } } }
16331639
end
16341640

1641+
lemma parallel.vector_span_eq {s₁ s₂ : set P} (h : affine_span k s₁ ∥ affine_span k s₂) :
1642+
vector_span k s₁ = vector_span k s₂ :=
1643+
begin
1644+
simp_rw ←direction_affine_span,
1645+
exact h.direction_eq
1646+
end
1647+
1648+
lemma affine_span_parallel_iff_vector_span_eq_and_eq_empty_iff_eq_empty {s₁ s₂ : set P} :
1649+
affine_span k s₁ ∥ affine_span k s₂ ↔ vector_span k s₁ = vector_span k s₂ ∧ (s₁ = ∅ ↔ s₂ = ∅) :=
1650+
begin
1651+
simp_rw [←direction_affine_span, ←affine_span_eq_bot k],
1652+
exact parallel_iff_direction_eq_and_eq_bot_iff_eq_bot
1653+
end
1654+
1655+
lemma affine_span_pair_parallel_iff_vector_span_eq {p₁ p₂ p₃ p₄ : P} :
1656+
line[k, p₁, p₂] ∥ line[k, p₃, p₄] ↔
1657+
vector_span k ({p₁, p₂} : set P) = vector_span k ({p₃, p₄} : set P) :=
1658+
by simp [affine_span_parallel_iff_vector_span_eq_and_eq_empty_iff_eq_empty,
1659+
←not_nonempty_iff_eq_empty]
1660+
16351661
end affine_subspace

0 commit comments

Comments
 (0)