assert(~Col O E E').
unfold Prod in H0.
spliter.
unfold Ar2  in H0.
tauto.
assert(exists ME : Tpoint, Opp O E E' E ME).
apply(opp_exists O E E' H1 E); Col;
assert(HH:= opp_prod O E E').
ex_and H2 ME.
assert(HH:= opp_prod O E E' ME A B H3 H).
assert(Prod O E E' B ME A).
apply(opp_prod O E E' ME B A H3).
apply opp_comm; auto.
assert(Prod O E E' ME B A).
apply prod_comm; auto.
assert(HP:=(prod_assoc O E E' A ME B B A A2 HH H4)).
destruct HP.
apply H5.
assumption.
Qed.
(**********)

(* Specifications: *)
Lemma PythOK : forall O E E' A B C A2 B2 C2, PythRel O E E' A B C ->
Prod O E E' A A A2 ->
Prod O E E' B B B2 ->
Prod O E E' C C C2 ->
Sum O E E' A2 B2 C2.
Lemma PythRel_uniqueness : forall O E E' A B C1 C2,
PythRel O E E' A B C1 ->
PythRel O E E' A B C2 ->
((Ps O E C1 /\ Ps O E C2) \/ C1 = O)->
C1 = C2.