pub trait LosslessMapper: LossyMapper {
// Required methods
proof fn lemma_lossless_mapper(&self, i: Self::In);
proof fn lemma_mapper_wf_in_out(&self, i: Self::In);
}Expand description
A SpecMapper that is lossless (i.e., non-malleable).
Required Methods§
Sourceproof fn lemma_lossless_mapper(&self, i: Self::In)
proof fn lemma_lossless_mapper(&self, i: Self::In)
requires
self.wf_in(i),ensuresself.spec_map_rev(self.spec_map(i)) == i,A lossless mapper should satisfy spec_map_rev(spec_map(i)) == i for all well-formed i.
That is, spec_map should be injective on well-formed Self::In values, and spec_map_rev should be its inverse.
Sourceproof fn lemma_mapper_wf_in_out(&self, i: Self::In)
proof fn lemma_mapper_wf_in_out(&self, i: Self::In)
requires
self.wf_in(i),ensuresself.wf_out(self.spec_map(i)),For well-formed i, spec_map(i) should also be well-formed.