
Joaquín Mª López Muñoz ha escrito:
Then we can rewrite the postcondition on std::vector as
if T is EquivalentSerializable under Pred, std::vector<T> is EquivalentSerializable.
Nope. You have to say under what predicate it is EquivalentSerializable. And when a nonstandard predicate is used for T there may not be any such predicate for the vector.
I think we agree here: when I said above "by default we can assume std::equal_to" what I meant is: EquivalentSerializable is short for EquivalentSerializable under std::equal_to. Otherwise we'd say EquivalentSerializable under Pred and specify Pred. So I think my statement about std::vector is correct and addresses your concerns.
Oh, my bad. The statement has an unintended "under Pred". What I meant to write is: f T is EquivalentSerializable, std::vector<T> is EquivalentSerializable. which works with the default types for the associated Pred's. Joaquín M López Muñoz Telefónica, Investigación y Desarrollo