Join and Meet Operators

### Join Operators

`val pathset_join : InferIR.Typ.Procname.t ‑> InferIR.Tenv.t ‑> Paths.PathSet.t ‑> Paths.PathSet.t ‑> Paths.PathSet.t * Paths.PathSet.t`

Join two pathsets

`val proplist_collapse_pre : InferIR.Tenv.t ‑> Prop.normal Prop.t list ‑> Prop.normal BiabductionSummary.Jprop.t list`
`val pathset_collapse : InferIR.Tenv.t ‑> Paths.PathSet.t ‑> Paths.PathSet.t`
`val pathset_collapse_impl : InferIR.Typ.Procname.t ‑> InferIR.Tenv.t ‑> Paths.PathSet.t ‑> Paths.PathSet.t`

reduce the pathset only based on implication checking.

### Meet Operators

`val propset_meet_generate_pre : InferIR.Tenv.t ‑> Propset.t ‑> Prop.normal Prop.t list`

`propset_meet_generate_pre` generates new symbolic heaps (i.e., props) by applying the partial meet operator, adds the generated heaps to the argument propset, and returns the resulting propset. This function is tuned for combining preconditions.