Fix some definitions, as ards(in(f)) can still contain abstract types!
Fix some definitions, as ards(in(f)) can still contain abstract types!

The proof previously failed in (1), as P(s) is not always true for ards
values because of the function that is chosen, but possibly because s
might just be abstract. So we might not have been able to refer to an
f'. Hence, we introduced P'(s), which is a stricter version of P(s), one
not ignoring the condition when s is abstract.

marcopennekamp/lore,marcopennekamp/lore