Instance Permutation_length' A {JA : Join A} {PA : Perm_alg A} :
Proper (@Permutation A ==> @eq A ==> Logic.iff) joinlist | 10.

(* Specifications: *)
Lemma joinlist_app {A} {JA : Join A} {PA : Perm_alg A} l1 l2 x1 x2 x :
joinlist l1 x1 ->
joinlist l2 x2 ->
join x1 x2 x ->
joinlist (l1 ++ l2) x.
Lemma app_joinlist {A} {JA : Join A} {SA : Sep_alg A} {PA : Perm_alg A} l1 l2 x :
joinlist (l1 ++ l2) x ->
exists x1 x2,
joinlist l1 x1 /\
joinlist l2 x2 /\
join x1 x2 x.
Lemma joinlist_merge {A} {JA : Join A} {PA : Perm_alg A} (a b c x : A) l :
join a b c -> joinlist (a :: b :: l) x <-> joinlist (c :: l) x.
Lemma joinlist_swap {A} {JA : Join A} {PA : Perm_alg A} (a b x : A) l :
joinlist (a :: b :: l) x =
joinlist (b :: a :: l) x.
Lemma joinlist_join_sub {A} {JA : Join A} {PA : Perm_alg A} (x phi : A) l :
joinlist l phi ->
In x l -> join_sub x phi.