aboutsummaryrefslogtreecommitdiff
path: root/src/Spec/Encoding.v
blob: b063b638fce37af6e686fa602e42c3d9ca2edc25 (plain)
1
2
3
4
5
6
7
8
Class CanonicalEncoding (T B:Type) := {
  enc : T -> B ;
  dec : B -> option T ;
  encoding_valid : forall x, dec (enc x) = Some x ;
  encoding_canonical : forall x_enc x, dec x_enc = Some x -> enc x = x_enc
}.

Notation "'canonical' 'encoding' 'of' T 'as' B" := (CanonicalEncoding T B) (at level 50).