Only second case is not straight-forward.
ensures in []
unless in []
and <exists : in [] :: {
and not } {}>
unless in []
and [<exists : in :: {
and not } {}>
or <exists : in :: {
and not } {}>]
[ unless in []
and <exists : in :: {
and not } {}>] or
[ unless in []
and <exists : in :: {
and not } {}>]
[ unless in and unless in
and <exists : in :: {
and not } {}>] or
[ unless in and unless in
and <exists : in :: {
and not } {}>]
[ ensures in
and unless in ] or
[ ensures in
and unless in ]