Library GeoCoq.Meta_theory.Parallel_postulates.consecutive_interior_angles_alternate_interior_angles
Require Import GeoCoq.Axioms.parallel_postulates.
Require Import GeoCoq.Tarski_dev.Annexes.suma.
Require Import GeoCoq.Tarski_dev.Ch12_parallel.
Section consecutive_interior_angles_alternate_interior_angles.
Context `{T2D:Tarski_2D}.
Lemma consecutive_interior__alternate_interior :
consecutive_interior_angles_postulate → alternate_interior_angles_postulate.
Proof.
intros cia A B C D Hts HPar.
assert (HD' := symmetric_point_construction D C).
destruct HD' as [D'].
assert(HNCol1 : ¬ Col B A C) by (destruct Hts; auto).
assert(HNCol2 : ¬ Col D A C) by (destruct Hts as [_ []]; auto).
assert_diffs.
assert(¬ Col A C D') by (intro; apply HNCol2; ColR).
assert (HB' := ex_conga_ts A C D' C A B).
destruct HB' as [B' []]; Col.
assert_diffs.
assert(HSuma : SumA B A C A C D' B A B').
∃ B'; repeat (split; CongA). apply l9_9; Side.
assert(TS A C D' D).
repeat (split; Col); ∃ C; split; Col; Between.
assert(Bet B A B').
{ apply (cia B A C D'); trivial.
∃ D; split; auto.
apply (par_col_par B A C D); Par; Col.
}
apply (sams2_suma2__conga123 _ _ _ _ _ _ A C D' D C D').
- split; auto.
split.
right; intro; apply HNCol1; Col.
∃ B'.
split; CongA.
split.
apply l9_9; Side.
intro HNts.
destruct HNts as [_ []]; assert_cols; Col.
- apply (sams_chara _ _ _ _ _ _ D'); Between; Lea.
- apply (conga3_suma__suma B A C A C D' B A B'); try (apply conga_refl); auto.
apply conga_line; Between.
- ∃ D'.
repeat (split; CongA).
apply l9_9; Side.
Qed.
End consecutive_interior_angles_alternate_interior_angles.
Require Import GeoCoq.Tarski_dev.Annexes.suma.
Require Import GeoCoq.Tarski_dev.Ch12_parallel.
Section consecutive_interior_angles_alternate_interior_angles.
Context `{T2D:Tarski_2D}.
Lemma consecutive_interior__alternate_interior :
consecutive_interior_angles_postulate → alternate_interior_angles_postulate.
Proof.
intros cia A B C D Hts HPar.
assert (HD' := symmetric_point_construction D C).
destruct HD' as [D'].
assert(HNCol1 : ¬ Col B A C) by (destruct Hts; auto).
assert(HNCol2 : ¬ Col D A C) by (destruct Hts as [_ []]; auto).
assert_diffs.
assert(¬ Col A C D') by (intro; apply HNCol2; ColR).
assert (HB' := ex_conga_ts A C D' C A B).
destruct HB' as [B' []]; Col.
assert_diffs.
assert(HSuma : SumA B A C A C D' B A B').
∃ B'; repeat (split; CongA). apply l9_9; Side.
assert(TS A C D' D).
repeat (split; Col); ∃ C; split; Col; Between.
assert(Bet B A B').
{ apply (cia B A C D'); trivial.
∃ D; split; auto.
apply (par_col_par B A C D); Par; Col.
}
apply (sams2_suma2__conga123 _ _ _ _ _ _ A C D' D C D').
- split; auto.
split.
right; intro; apply HNCol1; Col.
∃ B'.
split; CongA.
split.
apply l9_9; Side.
intro HNts.
destruct HNts as [_ []]; assert_cols; Col.
- apply (sams_chara _ _ _ _ _ _ D'); Between; Lea.
- apply (conga3_suma__suma B A C A C D' B A B'); try (apply conga_refl); auto.
apply conga_line; Between.
- ∃ D'.
repeat (split; CongA).
apply l9_9; Side.
Qed.
End consecutive_interior_angles_alternate_interior_angles.