Library GeoCoq.Elements.OriginalProofs.lemma_ray3
Require Export GeoCoq.Elements.OriginalProofs.lemma_outerconnectivity.
Section Euclid.
Context `{Ax:euclidean_neutral}.
Lemma lemma_ray3 :
∀ B C D V,
Out B C D → Out B C V →
Out B D V.
Proof.
intros.
let Tf:=fresh in
assert (Tf:∃ E, (BetS E B D ∧ BetS E B C)) by (conclude_def Out );destruct Tf as [E];spliter.
rename_H H;let Tf:=fresh in
assert (Tf:∃ H, (BetS H B V ∧ BetS H B C)) by (conclude_def Out );destruct Tf as [H];spliter.
assert (¬ ¬ BetS E B V).
{
intro.
assert (¬ BetS B E H).
{
intro.
assert (BetS H E B) by (conclude axiom_betweennesssymmetry).
assert (BetS E B V) by (conclude lemma_3_6a).
contradict.
}
assert (¬ BetS B H E).
{
intro.
assert (BetS E H B) by (conclude axiom_betweennesssymmetry).
assert (BetS E B V) by (conclude lemma_3_7a).
contradict.
}
assert (BetS C B E) by (conclude axiom_betweennesssymmetry).
assert (BetS C B H) by (conclude axiom_betweennesssymmetry).
assert (eq H E) by (conclude lemma_outerconnectivity).
assert (BetS E B V) by (conclude cn_equalitysub).
contradict.
}
assert (Out B D V) by (conclude_def Out ).
close.
Qed.
End Euclid.
Section Euclid.
Context `{Ax:euclidean_neutral}.
Lemma lemma_ray3 :
∀ B C D V,
Out B C D → Out B C V →
Out B D V.
Proof.
intros.
let Tf:=fresh in
assert (Tf:∃ E, (BetS E B D ∧ BetS E B C)) by (conclude_def Out );destruct Tf as [E];spliter.
rename_H H;let Tf:=fresh in
assert (Tf:∃ H, (BetS H B V ∧ BetS H B C)) by (conclude_def Out );destruct Tf as [H];spliter.
assert (¬ ¬ BetS E B V).
{
intro.
assert (¬ BetS B E H).
{
intro.
assert (BetS H E B) by (conclude axiom_betweennesssymmetry).
assert (BetS E B V) by (conclude lemma_3_6a).
contradict.
}
assert (¬ BetS B H E).
{
intro.
assert (BetS E H B) by (conclude axiom_betweennesssymmetry).
assert (BetS E B V) by (conclude lemma_3_7a).
contradict.
}
assert (BetS C B E) by (conclude axiom_betweennesssymmetry).
assert (BetS C B H) by (conclude axiom_betweennesssymmetry).
assert (eq H E) by (conclude lemma_outerconnectivity).
assert (BetS E B V) by (conclude cn_equalitysub).
contradict.
}
assert (Out B D V) by (conclude_def Out ).
close.
Qed.
End Euclid.