Hint Resolve f_pred_precise f_pred_positive.

Lemma atomic_entries_join : forall sh1 sh2 sh entries ghosts hists1 hists2 hists
(Hjoin : sepalg.join sh1 sh2 sh) (Hhists : join_hists hists1 hists2 = hists)
(Hghosts : Zlength ghosts = Zlength entries)
(Hlen : Zlength entries = Zlength hists1) (Hlen1 : Zlength hists1 = Zlength hists2)
(Hsh1 : readable_share sh1) (Hsh2 : readable_share sh2),
atomic_entries sh1 entries ghosts hists1 * atomic_entries sh2 entries ghosts hists2 =
!!(forall i, disjoint (fst (Znth i hists1 ([], []))) (fst (Znth i hists2 ([], []))) /\
disjoint (snd (Znth i hists1 ([], []))) (snd (Znth i hists2 ([], [])))) &&
atomic_entries sh entries ghosts hists.