@@ -865,23 +865,20 @@ proof.
865865 smt (ge0_poly_in_size ge0_poly_out_size ge0_extra_block_size).
866866qed.
867867
868- realize ofpairK.
869- proof.
870- move=> [x1 x2]; rewrite /topair /ofpair /=.
871- rewrite Block.block_of_bytesdK.
872- + by rewrite size_cat TPoly.bytes_of_polyP Extra_block.bytes_of_extra_blockP.
873- by rewrite
874- take_size_cat 1:TPoly.bytes_of_polyP 1:// drop_size_cat
875- 1:TPoly.bytes_of_polyP 1:// TPoly.bytes_of_polyKd
876- Extra_block.bytes_of_extra_blockKd.
877- qed.
878-
879868realize sample_spec.
880869proof.
870+ have ofpairK : cancel ofpair topair.
871+ + move=> [x1 x2]; rewrite /topair /ofpair /=.
872+ rewrite Block.block_of_bytesdK.
873+ + by rewrite size_cat TPoly.bytes_of_polyP Extra_block.bytes_of_extra_blockP.
874+ by rewrite
875+ take_size_cat 1:TPoly.bytes_of_polyP 1:// drop_size_cat
876+ 1:TPoly.bytes_of_polyP 1:// TPoly.bytes_of_polyKd
877+ Extra_block.bytes_of_extra_blockKd.
881878 move=> _; rewrite /dblock; apply eq_distr => b.
882879 rewrite !dmap1E.
883880 apply (eq_trans _ (mu1 (dpoly `*` dextra_block) ((topair b).`1, (topair b).`2))); last first.
884- + congr; apply fun_ext; smt (topairK ofpairK ).
881+ + congr; apply fun_ext; smt (topairK).
885882 rewrite dprod1E (_:block_size = poly_size + extra_block_size) //.
886883 rewrite dlist_add 1:ge0_poly_size 1:ge0_extra_block_size dmapE.
887884 rewrite !dmap1E /(\o ) -dprodE &(mu_eq_support) => -[l1 l2] /supp_dprod /= [h1 h2].
@@ -936,23 +933,20 @@ proof.
936933 smt (ge0_poly_in_size ge0_poly_out_size).
937934qed.
938935
939- realize ofpairK.
940- proof.
941- move=> [x1 x2]; rewrite /topair /ofpair /=.
942- rewrite TPoly.poly_of_bytesdK.
943- + by rewrite size_cat Poly_in.bytes_of_poly_inP Poly_out.bytes_of_poly_outP.
944- by rewrite
945- take_size_cat 1:Poly_in.bytes_of_poly_inP 1:// drop_size_cat
946- 1:Poly_in.bytes_of_poly_inP 1:// Poly_in.bytes_of_poly_inKd
947- Poly_out.bytes_of_poly_outKd.
948- qed.
949-
950936realize sample_spec.
951937proof.
938+ have ofpairK : cancel ofpair topair.
939+ + move=> [x1 x2]; rewrite /topair /ofpair /=.
940+ rewrite TPoly.poly_of_bytesdK.
941+ + by rewrite size_cat Poly_in.bytes_of_poly_inP Poly_out.bytes_of_poly_outP.
942+ by rewrite
943+ take_size_cat 1:Poly_in.bytes_of_poly_inP 1:// drop_size_cat
944+ 1:Poly_in.bytes_of_poly_inP 1:// Poly_in.bytes_of_poly_inKd
945+ Poly_out.bytes_of_poly_outKd.
952946 move=> _; rewrite /dpoly; apply eq_distr => b.
953947 rewrite !dmap1E.
954948 apply (eq_trans _ (mu1 (dpoly_in `*` dpoly_out) ((topair b).`1, (topair b).`2))); last first.
955- + congr; apply fun_ext; smt (topairK ofpairK ).
949+ + congr; apply fun_ext; smt (topairK).
956950 rewrite dprod1E (_:poly_size = poly_in_size + poly_out_size) //.
957951 rewrite dlist_add 1:ge0_poly_in_size 1:ge0_poly_out_size dmapE.
958952 rewrite !dmap1E /(\o ) -dprodE &(mu_eq_support) => -[l1 l2] /supp_dprod /= [h1 h2].
0 commit comments