Ltac uniformize_pys :=
repeat (rewrite pyth_simpl_1);
repeat (rewrite pyth_simpl_2);
repeat
match goal with
|  |- context [(Py ?A ?B ?C)] =>
(match goal with
|  |- context [(Py C B A)] => rewrite (pyth_sym A B C) in *
end)
|  |- context [(Py ?A ?B ?A)] =>
(match goal with
|  |- context [(Py B A B)] => rewrite (pyth_simpl_4 A B) in *
end)
end.

(* Specifications: *)
Lemma test_uniformize_pys : forall A B C,
Py A B C - Py C B A + Py A A C + Py A C C + Py A B A - Py B A B = 0.
Lemma square_to_py : forall A B, A**B * A**B = Py A B A / 2.
Lemma col_pyth : forall A B C, Col A B C -> Py A B C = 2 * B**A * B**C.
Lemma py4_1 : forall A B C D, Py4 A B C D = - Py4 A D C B.
Lemma py4_2 : forall A B C D, Py4 A B C D = Py4 B A D C.
Lemma py4_3 : forall A B C D, Py4 A B C D = - Py4 B C D A.
Lemma py4_4 : forall A B C D, Py4 A B C D = Py4 C D A B.
Lemma py4_5 : forall A B C D, Py4 A B C D = - Py4 C B A D.
Lemma py4_6 : forall A B C D, Py4 A B C D = Py4 D C B A.
Lemma py4_7 : forall A B C D, Py4 A B C D = - Py4 D A B C.
Hint Resolve py4_1 py4_2 py4_3 py4_4 py4_5 py4_6 py4_7 : Geom.
Lemma py4_simpl_1 : forall A B C, Py4 A A B C = - Py B A C.
Lemma py4_simpl_2 : forall A B C, Py4 B A A C = Py B A C.
Lemma py4_simpl_3 : forall A B C, Py4 A B A C = 0.
Lemma py4_simpl_4 : forall A B C, Py4 B A C A = 0.
Lemma py4_simpl_5 : forall A B C, Py4 B C A A = - Py B A C.
Lemma py4_simpl_6 : forall A B C, Py4 A B C A = Py B A C.
Hint Resolve
py4_simpl_1
py4_simpl_2
py4_simpl_3
py4_simpl_4
py4_simpl_5
py4_simpl_6 : Geom.