Library unit_tests

Require Import quadrilaterals_inter_dec.

Section UnitTests.

Context `{MT:Tarski_2D_euclidean}.
Context `{EqDec:EqDecidability Tpoint}.
Context `{InterDec:InterDecidability Tpoint Col}.

Goal A B I, A Bis_midpoint I A BI A I B.
Proof.
intros.
assert_diffs.
split;assumption.
Qed.

Goal A B I, B Ais_midpoint I A BI A I B.
Proof.
intros.
assert_diffs.
split;assumption.
Qed.

Goal A B I, IAis_midpoint I A BI B A B.
Proof.
intros.
assert_diffs.
split;assumption.
Qed.

Goal A B I, IBis_midpoint I A BI A A B.
Proof.
intros.
assert_diffs.
split;assumption.
Qed.

Goal A B I, AIis_midpoint I A BI B A B.
Proof.
intros.
assert_diffs.
split;assumption.
Qed.

Goal A B I, BIis_midpoint I A BI A A B.
Proof.
intros.
assert_diffs.
split;assumption.
Qed.

Goal A B I, ABis_midpoint I A BA I I B.
Proof.
intros.
assert_diffs.
split;auto.
Qed.

Goal A B:Tpoint, ABBATrue.
Proof.
intros.
not_exist_hyp_comm A B ||
clear H.
not_exist_hyp_comm A B ||
clear H0.
not_exist_hyp_comm A B.
auto.
Qed.

Goal A B C Q,
 B ACol A B Cis_midpoint Q A C
 A CB Cis_midpoint A B C
 Q C.
Proof.
intros.
assert_diffs.
assumption.
Qed.

Goal A B C D, Perp A B C DAB CD.
Proof.
intros.
assert_diffs.
split;assumption.
Qed.

Goal A B C D, ABPerp A B C DAB CD.
Proof.
intros.
assert_diffs.
split;assumption.
Qed.

Goal A B C D, ABPerp B A C DAB CD.
Proof.
intros.
assert_diffs.
split;assumption.
Qed.

Goal A B C D, ABPerp B A D CAB CD.
Proof.
intros.
assert_diffs.
split;intuition.
Qed.

Goal A B C D, ABCDPerp B A D CAB CD.
Proof.
intros.
assert_diffs.
split;intuition.
Qed.

Goal A B C D, DCPerp B A D CAB CD.
Proof.
intros.
assert_diffs.
split;intuition.
Qed.

Goal X A B C D, Perp_in X A B C DAB CD.
Proof.
intros.
assert_diffs.
split;assumption.
Qed.

Goal A B C D, Par A B C DAB CD.
Proof.
intros.
assert_diffs.
split;assumption.
Qed.

Goal A B C D, Par_strict A B C DAB CD.
Proof.
intros.
assert_diffs.
split;assumption.
Qed.

Goal A B C, out A B CBA CA.
Proof.
intros.
assert_diffs.
split;assumption.
Qed.

Goal A B C, out A B CCol B A C.
Proof.
intros.
assert_cols.
Col.
Qed.

Goal A B C D, ¬ Col A B C¬ Col A B D
  A D.
Proof.
intros.
assert_diffs.
intuition.
Qed.

Goal A B C D I,
  is_midpoint I A BPar A B C DIA.
Proof.
intros.
assert_diffs.
assumption.
Qed.

Goal A B C D I,
  is_midpoint I A BPar A I C DBA.
Proof.
intros.
assert_diffs.
intuition.
Qed.

Goal A B C D,
 Cong A B C DCDAB.
Proof.
intros.
assert_diffs.
intuition.
Qed.

Goal A B C D,
 Cong A B C DDCAB.
Proof.
intros.
assert_diffs.
intuition.
Qed.

Goal A B C D,
 Cong A B C DABCD.
Proof.
intros.
assert_diffs.
intuition.
Qed.

Goal A B C D,
 Cong A B C DBACD.
Proof.
intros.
assert_diffs.
intuition.
Qed.

Goal A B C D E,
 ¬ Col A B C
 ¬ Col B D EAB
  Col A B DCol A B ECol A B C.
Proof.
intros.
search_contradiction.
Qed.

Goal A B C D E,
 ¬ Col A B C
 ¬ Col B D EAB
  Col A B DCol A B ECD.
Proof.
intros.
assert_diffs.
assert_all_diffs_by_contradiction'.
finish.
Qed.

Goal A B C D,
 Par_strict A B C D
 ¬ Col A B C.
Proof.
intros.
assert_diffs.
Col.
Qed.

Goal A B C, (ABBCACCol A B C) → Col A B C.
Proof.
intros.
assert_all_diffs_by_cases.
intuition.
Qed.

Goal A B C D I, I AI BI CI DCol I A BCol I C D¬ Col A B C¬ Col A B D.
Proof.
intros.
assert_diffs.
assert_all_not_cols_by_contradiction.
finish.
Qed.

Goal A B C D I, I AI BI CI DCol I A BCol I C D¬ Col A B CA D.
Proof.
intros.
assert_diffs.
assert_all_diffs_by_contradiction'.
finish.
Qed.

Goal A B C D, Parallelogram A B C DCong A B C D.
Proof.
intros.
assert_congs.
finish.
Qed.

Goal A B C, is_midpoint A B CCong A B C A.
Proof.
intros.
assert_congs.
finish.
Qed.

End UnitTests.