Open samuelchassot opened 7 months ago
So in summary, it would be interesting to have a notion of "private" vs "public" implementations: so
opaque
opaque
from the outside of the classopaque
can use the unfold
operator where the opaque function body should be visible. Maybe we could add it automatically?
when working with laws in trait, for example:
I would like to be able to make the
serialise
anddeserialise
functionsopaque
from the outside of a class implementing this trait, so that the proof does rely only on the laws. However, I'd like the functions to not beopaque
inside the class definition itself.Here for example, a class implementing the trait
Serialiser
should be able to see its own implementation ofserialise
anddeserialise
to prove that the laws hold. However, other classes having access to an instance of such class shouldn't be able to access the implementation details, but only the laws.Ex: