Ltac assert_diffs :=
repeat
 match goal with
      | H:(~Col ?X1 ?X2 ?X3) |- _ =>
      let h := fresh in
      not_exist_hyp3 X1 X2 X1 X3 X2 X3;
      assert (h := not_col_distincts X1 X2 X3 H);decompose [and] h;clear h;clean_reap_hyps

      | H:(~Bet ?X1 ?X2 ?X3) |- _ =>
      let h := fresh in
      not_exist_hyp2 X1 X2 X2 X3;
      assert (h := not_bet_distincts X1 X2 X3 H);decompose [and] h;clear h;clean_reap_hyps
      | H:Bet ?A ?B ?C, H2 : ?A <> ?B |-_ =>
      let T:= fresh in (not_exist_hyp_comm A C);
        assert (T:= bet_neq12__neq A B C H H2);clean_reap_hyps
      | H:Bet ?A ?B ?C, H2 : ?B <> ?A |-_ =>
      let T:= fresh in (not_exist_hyp_comm A C);
        assert (T:= bet_neq21__neq A B C H H2);clean_reap_hyps
      | H:Bet ?A ?B ?C, H2 : ?B <> ?C |-_ =>
      let T:= fresh in (not_exist_hyp_comm A C);
        assert (T:= bet_neq23__neq A B C H H2);clean_reap_hyps
      | H:Bet ?A ?B ?C, H2 : ?C <> ?B |-_ =>
      let T:= fresh in (not_exist_hyp_comm A C);
        assert (T:= bet_neq32__neq A B C H H2);clean_reap_hyps

      | H:Cong ?A ?B ?C ?D, H2 : ?A <> ?B |-_ =>
      let T:= fresh in (not_exist_hyp_comm C D);
        assert (T:= cong_diff A B C D H2 H);clean_reap_hyps
      | H:Cong ?A ?B ?C ?D, H2 : ?B <> ?A |-_ =>
      let T:= fresh in (not_exist_hyp_comm C D);
        assert (T:= cong_diff_2 A B C D H2 H);clean_reap_hyps
      | H:Cong ?A ?B ?C ?D, H2 : ?C <> ?D |-_ =>
      let T:= fresh in (not_exist_hyp_comm A B);
        assert (T:= cong_diff_3 A B C D H2 H);clean_reap_hyps
      | H:Cong ?A ?B ?C ?D, H2 : ?D <> ?C |-_ =>
      let T:= fresh in (not_exist_hyp_comm A B);
        assert (T:= cong_diff_4 A B C D H2 H);clean_reap_hyps

      | H:Le ?A ?B ?C ?D, H2 : ?A <> ?B |-_ =>
      let T:= fresh in (not_exist_hyp_comm C D);
        assert (T:= le_diff A B C D H2 H);clean_reap_hyps
      | H:Le ?A ?B ?C ?D, H2 : ?B <> ?A |-_ =>
      let T:= fresh in (not_exist_hyp_comm C D);
        assert (T:= le_diff A B C D (swap_diff B A H2) H);clean_reap_hyps
      | H:Lt ?A ?B ?C ?D |-_ =>
      let T:= fresh in (not_exist_hyp_comm C D);
        assert (T:= lt_diff A B C D H);clean_reap_hyps

      | H:Midpoint ?I ?A ?B, H2 : ?A<>?B |- _ =>
      let T:= fresh in (not_exist_hyp2 I B I A);
       assert (T:= midpoint_distinct_1 I A B H2 H);
       decompose [and] T;clear T;clean_reap_hyps
      | H:Midpoint ?I ?A ?B, H2 : ?B<>?A |- _ =>
      let T:= fresh in (not_exist_hyp2 I B I A);
       assert (T:= midpoint_distinct_1 I A B (swap_diff B A H2) H);
       decompose [and] T;clear T;clean_reap_hyps

      | H:Midpoint ?I ?A ?B, H2 : ?I<>?A |- _ =>
      let T:= fresh in (not_exist_hyp2 I B A B);
       assert (T:= midpoint_distinct_2 I A B H2 H);
       decompose [and] T;clear T;clean_reap_hyps
      | H:Midpoint ?I ?A ?B, H2 : ?A<>?I |- _ =>
      let T:= fresh in (not_exist_hyp2 I B A B);
       assert (T:= midpoint_distinct_2 I A B (swap_diff A I H2) H);
       decompose [and] T;clear T;clean_reap_hyps

      | H:Midpoint ?I ?A ?B, H2 : ?I<>?B |- _ =>
      let T:= fresh in (not_exist_hyp2 I A A B);
       assert (T:= midpoint_distinct_3 I A B H2 H);
       decompose [and] T;clear T;clean_reap_hyps
      | H:Midpoint ?I ?A ?B, H2 : ?B<>?I |- _ =>
      let T:= fresh in (not_exist_hyp2 I A A B);
       assert (T:= midpoint_distinct_3 I A B (swap_diff B I H2) H);
       decompose [and] T;clear T;clean_reap_hyps

      | H:Per ?A ?B ?C, H2 : ?A<>?B |- _ =>
      let T:= fresh in (not_exist_hyp_comm A C);
        assert (T:= per_distinct A B C H H2); clean_reap_hyps
      | H:Per ?A ?B ?C, H2 : ?B<>?A |- _ =>
      let T:= fresh in (not_exist_hyp_comm A C);
        assert (T:= per_distinct A B C H (swap_diff B A H2)); clean_reap_hyps
      | H:Per ?A ?B ?C, H2 : ?B<>?C |- _ =>
      let T:= fresh in (not_exist_hyp_comm A C);
        assert (T:= per_distinct_1 A B C H H2); clean_reap_hyps
      | H:Per ?A ?B ?C, H2 : ?C<>?B |- _ =>
      let T:= fresh in (not_exist_hyp_comm A C);
        assert (T:= per_distinct_1 A B C H (swap_diff C B H2)); clean_reap_hyps

      | H:Perp ?A ?B ?C ?D |- _ =>
      let T:= fresh in (not_exist_hyp2 A B C D);
       assert (T:= perp_distinct A B C D H);
       decompose [and] T;clear T;clean_reap_hyps
      | H:Perp_at ?X ?A ?B ?C ?D |- _ =>
      let T:= fresh in (not_exist_hyp2 A B C D);
       assert (T:= perp_in_distinct X A B C D H);
       decompose [and] T;clear T;clean_reap_hyps
      | H:Out ?A ?B ?C |- _ =>
      let T:= fresh in (not_exist_hyp2 A B A C);
       assert (T:= out_distinct A B C H);
       decompose [and] T;clear T;clean_reap_hyps

      | H:TS ?A ?B ?C ?D |- _ =>
      let h := fresh in
      not_exist_hyp6 A B A C A D B C B D C D;
      assert (h := ts_distincts A B C D H);decompose [and] h;clear h;clean_reap_hyps
      | H:OS ?A ?B ?C ?D |- _ =>
      let h := fresh in
      not_exist_hyp5 A B A C A D B C B D;
      assert (h := os_distincts A B C D H);decompose [and] h;clear h;clean_reap_hyps
      | H:~ Coplanar ?A ?B ?C ?D |- _ =>
      let h := fresh in
      not_exist_hyp6 A B A C A D B C B D C D;
      assert (h := ncop_distincts A B C D H);decompose [and] h;clear h;clean_reap_hyps

      | H:CongA ?A ?B ?C ?A' ?B' ?C' |- _ =>
      let T:= fresh in (not_exist_hyp_comm A B);
        assert (T:= conga_diff1 A B C A' B' C' H);clean_reap_hyps
      | H:CongA ?A ?B ?C ?A' ?B' ?C' |- _ =>
      let T:= fresh in (not_exist_hyp_comm B C);
        assert (T:= conga_diff2 A B C A' B' C' H);clean_reap_hyps
      | H:CongA ?A ?B ?C ?A' ?B' ?C' |- _ =>
      let T:= fresh in (not_exist_hyp_comm A' B');
        assert (T:= conga_diff45 A B C A' B' C' H);clean_reap_hyps
      | H:CongA ?A ?B ?C ?A' ?B' ?C' |- _ =>
      let T:= fresh in (not_exist_hyp_comm B' C');
        assert (T:= conga_diff56 A B C A' B' C' H);clean_reap_hyps

      | H:(Orth_at ?X ?A ?B ?C ?U ?V) |- _ =>
      let h := fresh in
      not_exist_hyp4 A B A C B C U V;
      assert (h := orth_at_distincts A B C U V X H);decompose [and] h;clear h;clean_reap_hyps
      | H:(Orth ?A ?B ?C ?U ?V) |- _ =>
      let h := fresh in
      not_exist_hyp4 A B A C B C U V;
      assert (h := orth_distincts A B C U V H);decompose [and] h;clear h;clean_reap_hyps

      | H:SumA ?A ?B ?C ?D ?E ?F ?G ?I ?J |- _ =>
      let h := fresh in
      not_exist_hyp6 A B B C D E E F G I I J;
      assert (h := suma_distincts A B C D E F G I J H);decompose [and] h;clear h;clean_reap_hyps
      | H: TriSumA ?A ?B ?C ?D ?E ?F |- _ =>
      let h := fresh in
      not_exist_hyp5 A B B C A C D E E F;
      assert (h := trisuma_distincts A B C D E F H);decompose [and] h;clear h; clean_reap_hyps
      | H:SAMS ?A ?B ?C ?D ?E ?F |- _ =>
      let h := fresh in
      not_exist_hyp4 A B B C D E E F;
      assert (h := sams_distincts A B C D E F H);decompose [and] h;clear h;clean_reap_hyps

      | H:(InAngle ?P ?A ?B ?C) |- _ =>
      let h := fresh in
      not_exist_hyp3 A B C B P B;
      assert (h := inangle_distincts A B C P H);decompose [and] h;clear h;clean_reap_hyps
      | H:LeA ?A ?B ?C ?D ?E ?F |- _ =>
      let h := fresh in
      not_exist_hyp4 A B B C D E E F;
      assert (h := lea_distincts A B C D E F H);decompose [and] h;clear h;clean_reap_hyps
      | H:LtA ?A ?B ?C ?D ?E ?F |- _ =>
      let h := fresh in
      not_exist_hyp4 A B B C D E E F;
      assert (h := lta_distincts A B C D E F H);decompose [and] h;clear h;clean_reap_hyps
      | H:(Acute ?A ?B ?C) |- _ =>
      let h := fresh in
      not_exist_hyp2 A B B C;
      assert (h := acute_distincts A B C H);decompose [and] h;clear h;clean_reap_hyps
      | H:(Obtuse ?A ?B ?C) |- _ =>
      let h := fresh in
      not_exist_hyp2 A B B C;
      assert (h := obtuse_distincts A B C H);decompose [and] h;clear h;clean_reap_hyps
      | H:SuppA ?A ?B ?C ?D ?E ?F |- _ =>
      let h := fresh in
      not_exist_hyp4 A B B C D E E F;
      assert (h := suppa_distincts A B C D E F H);decompose [and] h;clear h;clean_reap_hyps
 end.Ltac SumA := eauto with suma.

(* Specifications: *)
Lemma sams_suma__lea123789 : forall A B C D E F G H I, SumA A B C D E F G H I -> SAMS A B C D E F -> LeA A B C G H I.
Lemma sams_suma__lea456789 : forall A B C D E F G H I, SumA A B C D E F G H I -> SAMS A B C D E F -> LeA D E F G H I.
Lemma sams_lea2__sams : forall A B C D E F A' B' C' D' E' F', SAMS A' B' C' D' E' F' -> LeA A B C A' B' C' -> LeA D E F D' E' F' -> SAMS A B C D E F.
Lemma sams_lea456_suma2__lea : forall A B C D E F G H I D' E' F' G' H' I', LeA D E F D' E' F' -> SAMS A B C D' E' F' -> SumA A B C D E F G H I -> SumA A B C D' E' F' G' H' I' -> LeA G H I G' H' I'.
Lemma sams_lea123_suma2__lea : forall A B C D E F G H I A' B' C' G' H' I', LeA A B C A' B' C' -> SAMS A' B' C' D E F -> SumA A B C D E F G H I -> SumA A' B' C' D E F G' H' I' -> LeA G H I G' H' I'.
Lemma sams_lea2_suma2__lea : forall A B C D E F G H I A' B' C' D' E' F' G' H' I', LeA A B C A' B' C' -> LeA D E F D' E' F' -> SAMS A' B' C' D' E' F' -> SumA A B C D E F G H I -> SumA A' B' C' D' E' F' G' H' I' -> LeA G H I G' H' I'.
Lemma sams2_suma2__conga456 : forall A B C D E F D' E' F' G H I, SAMS A B C D E F -> SAMS A B C D' E' F' -> SumA A B C D E F G H I -> SumA A B C D' E' F' G H I -> CongA D E F D' E' F'.
Lemma sams2_suma2__conga123 : forall A B C A' B' C' D E F G H I, SAMS A B C D E F -> SAMS A' B' C' D E F -> SumA A B C D E F G H I -> SumA A' B' C' D E F G H I -> CongA A B C A' B' C'.
Lemma suma_assoc_1 : forall A B C D E F G H I K L M A' B' C' D' E' F', SAMS A B C D E F -> SAMS D E F G H I -> SumA A B C D E F A' B' C' -> SumA D E F G H I D' E' F' -> SumA A' B' C' G H I K L M -> SumA A B C D' E' F' K L M.
Lemma suma_assoc_2 : forall A B C D E F G H I K L M A' B' C' D' E' F', SAMS A B C D E F -> SAMS D E F G H I -> SumA A B C D E F A' B' C' -> SumA D E F G H I D' E' F' -> SumA A B C D' E' F' K L M -> SumA A' B' C' G H I K L M.
Lemma suma_assoc : forall A B C D E F G H I K L M A' B' C' D' E' F', SAMS A B C D E F -> SAMS D E F G H I -> SumA A B C D E F A' B' C' -> SumA D E F G H I D' E' F' -> (SumA A' B' C' G H I K L M <-> SumA A B C D' E' F' K L M).
Lemma sams_assoc_1 : forall A B C D E F G H I A' B' C' D' E' F', SAMS A B C D E F -> SAMS D E F G H I -> SumA A B C D E F A' B' C' -> SumA D E F G H I D' E' F' -> SAMS A' B' C' G H I -> SAMS A B C D' E' F'.
Lemma sams_assoc_2 : forall A B C D E F G H I A' B' C' D' E' F', SAMS A B C D E F -> SAMS D E F G H I -> SumA A B C D E F A' B' C' -> SumA D E F G H I D' E' F' -> SAMS A B C D' E' F' -> SAMS A' B' C' G H I.
Lemma sams_assoc : forall A B C D E F G H I A' B' C' D' E' F', SAMS A B C D E F -> SAMS D E F G H I -> SumA A B C D E F A' B' C' -> SumA D E F G H I D' E' F' -> (SAMS A' B' C' G H I <-> SAMS A B C D' E' F').
Lemma sams_nos__nts : forall A B C J, SAMS A B C C B J -> ~ OS B C A J -> ~ TS A B C J.
Lemma conga_sams_nos__nts : forall A B C D E F J, SAMS A B C D E F -> CongA C B J D E F -> ~ OS B C A J -> ~ TS A B C J.
Lemma sams_lea2_suma2__conga123 : forall A B C D E F G H I A' B' C' D' E' F', LeA A B C A' B' C' -> LeA D E F D' E' F' -> SAMS A' B' C' D' E' F' -> SumA A B C D E F G H I -> SumA A' B' C' D' E' F' G H I -> CongA A B C A' B' C'.
Lemma sams_lea2_suma2__conga456 : forall A B C D E F G H I A' B' C' D' E' F', LeA A B C A' B' C' -> LeA D E F D' E' F' -> SAMS A' B' C' D' E' F' -> SumA A B C D E F G H I -> SumA A' B' C' D' E' F' G H I -> CongA D E F D' E' F'.
Lemma sams_suma__out213 : forall A B C D E F, SumA A B C D E F D E F -> SAMS A B C D E F -> Out B A C.
Lemma sams_suma__out546 : forall A B C D E F, SumA A B C D E F A B C -> SAMS A B C D E F -> Out E D F.
Lemma sams_lea_lta123_suma2__lta : forall A B C D E F G H I A' B' C' D' E' F' G' H' I', LtA A B C A' B' C' -> LeA D E F D' E' F' -> SAMS A' B' C' D' E' F' -> SumA A B C D E F G H I -> SumA A' B' C' D' E' F' G' H' I' -> LtA G H I G' H' I'.
Lemma sams_lea_lta456_suma2__lta : forall A B C D E F G H I A' B' C' D' E' F' G' H' I', LeA A B C A' B' C' -> LtA D E F D' E' F' -> SAMS A' B' C' D' E' F' -> SumA A B C D E F G H I -> SumA A' B' C' D' E' F' G' H' I' -> LtA G H I G' H' I'.
Lemma sams_lta2_suma2__lta : forall A B C D E F G H I A' B' C' D' E' F' G' H' I', LtA A B C A' B' C' -> LtA D E F D' E' F' -> SAMS A' B' C' D' E' F' -> SumA A B C D E F G H I -> SumA A' B' C' D' E' F' G' H' I' -> LtA G H I G' H' I'.
Lemma sams_lea2_suma2__lea123 : forall A B C D E F G H I A' B' C' D' E' F' G' H' I', LeA D' E' F' D E F -> LeA G H I G' H' I' -> SAMS A B C D E F -> SumA A B C D E F G H I -> SumA A' B' C' D' E' F' G' H' I' -> LeA A B C A' B' C'.
Lemma sams_lea2_suma2__lea456 : forall A B C D E F G H I A' B' C' D' E' F' G' H' I', LeA A' B' C' A B C -> LeA G H I G' H' I' -> SAMS A B C D E F -> SumA A B C D E F G H I -> SumA A' B' C' D' E' F' G' H' I' -> LeA D E F D' E' F'.
Lemma sams_lea_lta456_suma2__lta123 : forall A B C D E F G H I A' B' C' D' E' F' G' H' I', LtA D' E' F' D E F -> LeA G H I G' H' I' -> SAMS A B C D E F -> SumA A B C D E F G H I -> SumA A' B' C' D' E' F' G' H' I' -> LtA A B C A' B' C'.
Lemma sams_lea_lta123_suma2__lta456 : forall A B C D E F G H I A' B' C' D' E' F' G' H' I', LtA A' B' C' A B C -> LeA G H I G' H' I' -> SAMS A B C D E F -> SumA A B C D E F G H I -> SumA A' B' C' D' E' F' G' H' I' -> LtA D E F D' E' F'.
Lemma sams_lea_lta789_suma2__lta123 : forall A B C D E F G H I A' B' C' D' E' F' G' H' I', LeA D' E' F' D E F -> LtA G H I G' H' I' -> SAMS A B C D E F -> SumA A B C D E F G H I -> SumA A' B' C' D' E' F' G' H' I' -> LtA A B C A' B' C'.
Lemma sams_lea_lta789_suma2__lta456 : forall A B C D E F G H I A' B' C' D' E' F' G' H' I', LeA A' B' C' A B C -> LtA G H I G' H' I' -> SAMS A B C D E F -> SumA A B C D E F G H I -> SumA A' B' C' D' E' F' G' H' I' -> LtA D E F D' E' F'.
Lemma sams_lta2_suma2__lta123 : forall A B C D E F G H I A' B' C' D' E' F' G' H' I', LtA D' E' F' D E F -> LtA G H I G' H' I' -> SAMS A B C D E F -> SumA A B C D E F G H I -> SumA A' B' C' D' E' F' G' H' I' -> LtA A B C A' B' C'.
Lemma sams_lta2_suma2__lta456 : forall A B C D E F G H I A' B' C' D' E' F' G' H' I', LtA A' B' C' A B C -> LtA G H I G' H' I' -> SAMS A B C D E F -> SumA A B C D E F G H I -> SumA A' B' C' D' E' F' G' H' I' -> LtA D E F D' E' F'.
Lemma sams123231 : forall A B C, A <> B -> A <> C -> B <> C -> SAMS A B C B C A.
Lemma col_suma__col : forall A B C D E F, Col D E F -> SumA A B C B C A D E F -> Col A B C.
Lemma ncol_suma__ncol : forall A B C D E F, ~ Col A B C -> SumA A B C B C A D E F -> ~ Col D E F.
Lemma per2_suma__bet : forall A B C D E F G H I, Per A B C -> Per D E F -> SumA A B C D E F G H I -> Bet G H I.
Lemma bet_per2__suma : forall A B C D E F G H I, A <> B -> B <> C -> D <> E -> E <> F -> G <> H -> H <> I -> Per A B C -> Per D E F -> Bet G H I -> SumA A B C D E F G H I.
Lemma per2__sams : forall A B C D E F, A <> B -> B <> C -> D <> E -> E <> F -> Per A B C -> Per D E F -> SAMS A B C D E F.
Lemma bet_per_suma__per456 : forall A B C D E F G H I, Per A B C -> Bet G H I -> SumA A B C D E F G H I -> Per D E F.
Lemma bet_per_suma__per123 : forall A B C D E F G H I, Per D E F -> Bet G H I -> SumA A B C D E F G H I -> Per A B C.
Lemma bet_suma__per : forall A B C D E F, Bet D E F -> SumA A B C A B C D E F -> Per A B C.
Lemma acute__sams : forall A B C, Acute A B C -> SAMS A B C A B C.
Lemma acute_suma__nbet : forall A B C D E F, Acute A B C -> SumA A B C A B C D E F -> ~ Bet D E F.
Lemma acute2__sams : forall A B C D E F, Acute A B C -> Acute D E F -> SAMS A B C D E F.
Lemma acute2_suma__nbet : forall A B C D E F G H I, Acute A B C -> Acute D E F -> SumA A B C D E F G H I -> ~ Bet G H I.
Lemma acute_per__sams : forall A B C D E F, A <> B -> B <> C -> Per A B C -> Acute D E F -> SAMS A B C D E F.
Lemma acute_per_suma__nbet : forall A B C D E F G H I, A <> B -> B <> C -> Per A B C -> Acute D E F -> SumA A B C D E F G H I -> ~ Bet G H I.
Lemma obtuse__nsams : forall A B C, Obtuse A B C -> ~ SAMS A B C A B C.
Lemma nbet_sams_suma__acute : forall A B C D E F, ~ Bet D E F -> SAMS A B C A B C -> SumA A B C A B C D E F -> Acute A B C.
Lemma nsams__obtuse : forall A B C, A <> B -> B <> C -> ~ SAMS A B C A B C -> Obtuse A B C.
Lemma sams2_suma2__conga : forall A B C D E F A' B' C', SAMS A B C A B C -> SumA A B C A B C D E F -> SAMS A' B' C' A' B' C' -> SumA A' B' C' A' B' C' D E F -> CongA A B C A' B' C'.
Lemma acute2_suma2__conga : forall A B C D E F A' B' C', Acute A B C -> SumA A B C A B C D E F -> Acute A' B' C' -> SumA A' B' C' A' B' C' D E F -> CongA A B C A' B' C'.
Lemma bet2_suma__out : forall A B C D E F G H I, Bet A B C -> Bet D E F -> SumA A B C D E F G H I -> Out H G I.
Lemma col2_suma__col : forall A B C D E F G H I, Col A B C -> Col D E F -> SumA A B C D E F G H I -> Col G H I.
Lemma suma_suppa__bet : forall A B C D E F G H I, SuppA A B C D E F -> SumA A B C D E F G H I -> Bet G H I.
Lemma bet_suppa__suma : forall A B C D E F G H I, G <> H -> H <> I -> SuppA A B C D E F -> Bet G H I -> SumA A B C D E F G H I.
Lemma bet_suma__suppa : forall A B C D E F G H I, SumA A B C D E F G H I -> Bet G H I -> SuppA A B C D E F.
Lemma bet2_suma__suma : forall A B C D E F G H I A' D', A' <> B -> D' <> E -> Bet A B A' -> Bet D E D' -> SumA A B C D E F G H I -> SumA A' B C D' E F G H I.
Lemma suma_suppa2__suma : forall A B C D E F G H I A' B' C' D' E' F', SuppA A B C A' B' C' -> SuppA D E F D' E' F' -> SumA A B C D E F G H I -> SumA A' B' C' D' E' F' G H I.
Lemma suma2_obtuse2__conga : forall A B C D E F A' B' C', Obtuse A B C -> SumA A B C A B C D E F -> Obtuse A' B' C' -> SumA A' B' C' A' B' C' D E F -> CongA A B C A' B' C'.
Lemma bet_suma2__or_conga : forall A B C D E F A' B' C' A0, A0 <> B -> Bet A B A0 -> SumA A B C A B C D E F -> SumA A' B' C' A' B' C' D E F -> CongA A B C A' B' C' \/ CongA A0 B C A' B' C'.
Lemma suma2__or_conga_suppa : forall A B C A' B' C' D E F , SumA A B C A B C D E F -> SumA A' B' C' A' B' C' D E F -> CongA A B C A' B' C' \/ SuppA A B C A' B' C'.
Lemma ex_trisuma : forall A B C, A <> B -> B <> C -> A <> C -> exists D E F, TriSumA A B C D E F.
Lemma trisuma_perm_231 : forall A B C D E F, TriSumA A B C D E F -> TriSumA B C A D E F.
Lemma trisuma_perm_312 : forall A B C D E F, TriSumA A B C D E F -> TriSumA C A B D E F.
Lemma trisuma_perm_321 : forall A B C D E F, TriSumA A B C D E F -> TriSumA C B A D E F.
Lemma trisuma_perm_213 : forall A B C D E F, TriSumA A B C D E F -> TriSumA B A C D E F.
Lemma trisuma_perm_132 : forall A B C D E F, TriSumA A B C D E F -> TriSumA A C B D E F.
Lemma conga_trisuma__trisuma : forall A B C D E F D' E' F', TriSumA A B C D E F -> CongA D E F D' E' F' -> TriSumA A B C D' E' F'.
Lemma trisuma2__conga : forall A B C D E F D' E' F', TriSumA A B C D E F -> TriSumA A B C D' E' F' -> CongA D E F D' E' F'.
Lemma conga3_trisuma__trisuma : forall A B C D E F A' B' C', TriSumA A B C D E F -> CongA A B C A' B' C' -> CongA B C A B' C' A' -> CongA C A B C' A' B' -> TriSumA A' B' C' D E F.
Lemma col_trisuma__bet : forall A B C P Q R, Col A B C -> TriSumA A B C P Q R -> Bet P Q R.
Lemma suma_dec : forall A B C D E F G H I, SumA A B C D E F G H I \/ ~ SumA A B C D E F G H I.
Lemma sams_dec : forall A B C D E F, SAMS A B C D E F \/ ~ SAMS A B C D E F.
Lemma trisuma_dec : forall A B C P Q R, TriSumA A B C P Q R \/ ~ TriSumA A B C P Q R.