Existing Instance list_join.

(* Specifications: *)
Lemma list_join_inv: forall {P : Ghost} (l1 l2 l3 : list (option G)), list_join l1 l2 l3 ->
match l1, l2 with
| nil, _ => l3 = l2
| _, nil => l3 = l1
| a1 :: l1, a2 :: l2 => match l3 with nil => False
| a3 :: l3 => join a1 a2 a3 /\ list_join l1 l2 l3 end
end.