@@ -807,10 +807,13 @@ proof.
807807 rewrite (hrec (size (drop block_size p))) 2://; 1: smt(size_drop gt0_block_size).
808808 rewrite -{4}(cat_take_drop block_size p); congr.
809809 rewrite -!take_xor_map2_xor; apply (eq_from_nth Byte.zero).
810- + smt (size_map2 Block.bytes_of_blockP size_cat size_take gt0_block_size size_ge0).
810+ + rewrite size_take 1:#smt:(gt0_block_size).
811+ rewrite size_map2 size_cat size_map2 bytes_of_blockP.
812+ by rewrite /min; smt(size_ge0).
811813 move=> j hj.
812814 have [hj1 hj2] : j < block_size /\ j < size p.
813- + smt (size_map2 Block.bytes_of_blockP size_cat size_take gt0_block_size size_ge0).
815+ + move: hj; rewrite size_map2 size_cat size_map2 bytes_of_blockP /min.
816+ smt(size_ge0).
814817 rewrite
815818 (nth_map2 Byte.zero Byte.zero)
816819 ?(size_cat, size_map2, Block.bytes_of_blockP) 1:#smt:(size_ge0).
@@ -878,7 +881,9 @@ proof.
878881 move=> _; rewrite /dblock; apply eq_distr => b.
879882 rewrite !dmap1E.
880883 apply (eq_trans _ (mu1 (dpoly `*` dextra_block) ((topair b).`1, (topair b).`2))); last first.
881- + congr; apply fun_ext; smt (topairK).
884+ + congr; apply: fun_ext=> x @/(\o ) @/pred1.
885+ rewrite -{3}topairK; case: (topair b)=> />.
886+ by move: (can_inj _ _ ofpairK)=> /#.
882887 rewrite dprod1E (_:block_size = poly_size + extra_block_size) //.
883888 rewrite dlist_add 1:ge0_poly_size 1:ge0_extra_block_size dmapE.
884889 rewrite !dmap1E /(\o ) -dprodE &(mu_eq_support) => -[l1 l2] /supp_dprod /= [h1 h2].
@@ -946,7 +951,9 @@ proof.
946951 move=> _; rewrite /dpoly; apply eq_distr => b.
947952 rewrite !dmap1E.
948953 apply (eq_trans _ (mu1 (dpoly_in `*` dpoly_out) ((topair b).`1, (topair b).`2))); last first.
949- + congr; apply fun_ext; smt (topairK).
954+ + congr; apply: fun_ext=> x @/(\o ) @/pred1.
955+ rewrite -{3}(topairK b); case: (topair b)=> />.
956+ by move: (can_inj _ _ ofpairK)=> /#.
950957 rewrite dprod1E (_:poly_size = poly_in_size + poly_out_size) //.
951958 rewrite dlist_add 1:ge0_poly_in_size 1:ge0_poly_out_size dmapE.
952959 rewrite !dmap1E /(\o ) -dprodE &(mu_eq_support) => -[l1 l2] /supp_dprod /= [h1 h2].
@@ -1752,7 +1759,30 @@ section PROOFS.
17521759 let r = oget ROin.m {1 }.[(n, C.ofintd 0 )] in
17531760 let s = oget ROout.m {1 }.[(n, C.ofintd 0 )] in
17541761 s = t - poly1305_eval r (topol a c))); last first.
1755- + auto => /> ; smt (undup_uniq size_undup size_map).
1762+ (** TODO DUPRESSOIR: CLEAN THIS UP **)
1763+ + auto => /> &1 &2 + not_bad; rewrite not_bad=> />.
1764+ move=> inv_count inv_domRO inv_domSRO1 eq_domSRO2 inv_domSRO2 size_lenc inv_ndec inv_log inv_sc inv0 inv1 inv2 inv3 inv4.
1765+ split; 1 :smt (undup_uniq).
1766+ split=> [/#|].
1767+ split; 1 :smt (size_undup size_map).
1768+ split=> [/#|].
1769+ split=> [/#|].
1770+ move=> j ge0_j gtj_size lc_j x1 x2 x3.
1771+ pose n0 := nth witness (undup (map (fun (p : ciphertext)=> p.`1 ) Mem.lc {2 })) j.
1772+ case _: (UFCMA.log .[n0]{2 }).
1773+ + smt ().
1774+ move=> /> log_nth.
1775+ split=> [/#|].
1776+ case _: (SplitC2.I2 .RO .m {1 }.[n0, C.ofintd 0 ]).
1777+ + smt ().
1778+ case _: (RO.m {2 }.[n0, C.ofintd 0 ]).
1779+ + smt ().
1780+ move=> />.
1781+ move: (inv2 n0 _); 1 :smt ().
1782+ rewrite log_nth=> /> _ _ x0 m2_n0 x4 i2_n0.
1783+ move: (inv4 n0 _).
1784+ + exact: (inv_domSRO1 _ (C.ofintd 0 )).
1785+ by rewrite log_nth i2_n0 m2_n0.
17561786
17571787 (* + auto => /> *; have [#] * :=H H0. *)
17581788 (* rewrite H3/=. *)
@@ -2086,12 +2116,13 @@ section PROOFS.
20862116 - have:=allP (fun (n0 : nonce) => (n0, C.ofintd 0) \n otin ROout.m{2}) l2.
20872117 have-> /= -> //=:=filter_all (fun (n0 : nonce) => (n0, C.ofintd 0) \n otin SplitC2.I2.RO.m{2}) l.
20882118 by rewrite mem_nth //=.
2089- rewrite (drop_nth witness i{2} l2) //= drop0 //=; do ! split=> /> * .
2119+ rewrite (drop_nth witness i{2} l2) //= drop0 //=; do ! split=> />.
20902120 + smt().
20912121 + smt(mem_set).
2092- + rewrite get_set_neqE /=; smt(mem_nth).
2093- + smt(mem_set).
2122+ + move=> *; rewrite get_set_neqE /=; smt(mem_nth).
20942123 + smt(mem_set).
2124+ + move=> n0; rewrite mem_set; case=> [/#|/>].
2125+ by right; exists i{2}=> /#.
20952126 + smt(mem_set size_drop size_ge0 size_eq0).
20962127 + smt(mem_set size_drop size_ge0 size_eq0).
20972128 qed.
0 commit comments