define a nicer syntax for applying a predicate to a memory
define a nicer syntax for applying a predicate to a memory

[m :: p] is the new syntax for [(p)%pred m]

it's defined with the help of a simple [pred_apply] function:

  Definition pred_apply (m : @mem AT AEQ V) (p : pred) := p m.

both to help the notation know when to print [p m] as [m :: p], and
to help setoid_rewrite know that it's OK to rewrite a [pred_apply]
term's predicate using [pimpl] or [piff] -- see the [pred_apply_rewrite]
example.

mit-pdos/fscq-impl,mit-pdos/fscq-impl,mit-pdos/fscq-impl,mit-pdos/fscq-impl,mit-pdos/fscq-impl