Ltac lg_instance_not_col l P A B :=
  assert(tempo_sg:= ex_points_lg_not_col l P);
  match goal with
        |HP : Q_Cong l |-  _ => match goal with
                                  |HQ : ~ Q_Cong_Null l |-  _ => assert(tempo_HQ:=HQ);
                                                            apply (tempo_sg HP) in tempo_HQ;
                                                            elim tempo_HQ;
                                                            intro A;
                                                            let tempo_HR := fresh "tempo_HR" in
                                                            intro tempo_HR;
                                                            elim tempo_HR;
                                                            intro B;
                                                            intro;
                                                            spliter;
                                                            clear tempo_HR tempo_HQ
                            end
  end;
  clear tempo_sg.Notation "l1 =l= l2" := (EqL l1 l2) (at level 80, right associativity).

(* Specifications: *)
Lemma ex_eql : forall l1 l2, (exists A , exists B, Len A B l1 /\ Len A B l2) -> l1 =l= l2.
Lemma all_eql : forall A B l1 l2, Len A B l1 -> Len A B l2 -> EqL l1 l2.
Lemma null_len : forall A B la lb, Len A A la -> Len B B lb -> EqL la lb.