Library GeoCoq.Elements.OriginalProofs.lemma_parallelNC
Require Export GeoCoq.Elements.OriginalProofs.lemma_collinearorder.
Section Euclid.
Context `{Ax:euclidean_neutral}.
Lemma lemma_parallelNC :
∀ A B C D,
Par A B C D →
nCol A B C ∧ nCol A C D ∧ nCol B C D ∧ nCol A B D.
Proof.
intros.
let Tf:=fresh in
assert (Tf:∃ M a b c d, (neq A B ∧ neq C D ∧ Col A B a ∧ Col A B b ∧ neq a b ∧ Col C D c ∧ Col C D d ∧ neq c d ∧ ¬ Meet A B C D ∧ BetS a M d ∧ BetS c M b)) by (conclude_def Par );destruct Tf as [M[a[b[c[d]]]]];spliter.
assert (¬ Col A C D).
{
intro.
assert (Col C D A) by (forward_using lemma_collinearorder).
assert (eq A A) by (conclude cn_equalityreflexive).
assert (Col A B A) by (conclude_def Col ).
assert (Meet A B C D) by (conclude_def Meet ).
contradict.
}
assert (¬ Col A B C).
{
intro.
assert (eq C C) by (conclude cn_equalityreflexive).
assert (Col C D C) by (conclude_def Col ).
assert (Meet A B C D) by (conclude_def Meet ).
contradict.
}
assert (¬ Col B C D).
{
intro.
assert (Col C D B) by (forward_using lemma_collinearorder).
assert (eq B B) by (conclude cn_equalityreflexive).
assert (Col A B B) by (conclude_def Col ).
assert (Meet A B C D) by (conclude_def Meet ).
contradict.
}
assert (¬ Col A B D).
{
intro.
assert (eq D D) by (conclude cn_equalityreflexive).
assert (Col C D D) by (conclude_def Col ).
assert (Meet A B C D) by (conclude_def Meet ).
contradict.
}
close.
Qed.
End Euclid.
Section Euclid.
Context `{Ax:euclidean_neutral}.
Lemma lemma_parallelNC :
∀ A B C D,
Par A B C D →
nCol A B C ∧ nCol A C D ∧ nCol B C D ∧ nCol A B D.
Proof.
intros.
let Tf:=fresh in
assert (Tf:∃ M a b c d, (neq A B ∧ neq C D ∧ Col A B a ∧ Col A B b ∧ neq a b ∧ Col C D c ∧ Col C D d ∧ neq c d ∧ ¬ Meet A B C D ∧ BetS a M d ∧ BetS c M b)) by (conclude_def Par );destruct Tf as [M[a[b[c[d]]]]];spliter.
assert (¬ Col A C D).
{
intro.
assert (Col C D A) by (forward_using lemma_collinearorder).
assert (eq A A) by (conclude cn_equalityreflexive).
assert (Col A B A) by (conclude_def Col ).
assert (Meet A B C D) by (conclude_def Meet ).
contradict.
}
assert (¬ Col A B C).
{
intro.
assert (eq C C) by (conclude cn_equalityreflexive).
assert (Col C D C) by (conclude_def Col ).
assert (Meet A B C D) by (conclude_def Meet ).
contradict.
}
assert (¬ Col B C D).
{
intro.
assert (Col C D B) by (forward_using lemma_collinearorder).
assert (eq B B) by (conclude cn_equalityreflexive).
assert (Col A B B) by (conclude_def Col ).
assert (Meet A B C D) by (conclude_def Meet ).
contradict.
}
assert (¬ Col A B D).
{
intro.
assert (eq D D) by (conclude cn_equalityreflexive).
assert (Col C D D) by (conclude_def Col ).
assert (Meet A B C D) by (conclude_def Meet ).
contradict.
}
close.
Qed.
End Euclid.