Skip to main content

lemma_mapped_prepare_congruence

Function lemma_mapped_prepare_congruence 

Source
pub broadcast proof fn lemma_mapped_prepare_congruence<A, B, M1, M2>(
    a: Mapped<A, M1>,
    b: Mapped<B, M2>,
)
where A: Consistency + SpecByteLen<T = A::Val>, B: Consistency<Val = A::Val> + SpecByteLen<T = A::Val>, M1: SpecMapper<In = A::Val>, M2: SpecMapper<In = A::Val, Out = M1::Out>,
Expand description
requires
prepare_congruent(a.inner, b.inner),
forall |v: M1::Out| #[trigger] a.mapper.spec_map_rev(v) == b.mapper.spec_map_rev(v),
forall |v: M1::Out| #[trigger] a.mapper.wf_out(v) <==> b.mapper.wf_out(v),
ensures
#[trigger] prepare_congruent(a, b),