diff --git a/theories/list_numbers.v b/theories/list_numbers.v index 1caa8ede0ed0f82968782be1e579dc3225bb8f02..c3365b6529cdd97fb579de3337db8abd9df4cddf 100644 --- a/theories/list_numbers.v +++ b/theories/list_numbers.v @@ -145,15 +145,9 @@ Section seqZ. 0 ≤ n2 → seqZ m (n1 + n2) = seqZ m n1 ++ seqZ (m + n1) n2. Proof. - intros. unfold seqZ. - replace (Z.to_nat (n1 + n2)) with (Z.to_nat n1 + Z.to_nat n2)%nat by lia. - rewrite seq_app, fmap_app. - f_equal. - replace (0 + Z.to_nat n1)%nat with (Z.to_nat n1 + 0)%nat by lia. - rewrite <- fmap_add_seq. - rewrite <- list_fmap_compose. - apply list_fmap_ext; auto. - intros. simpl. lia. + intros. unfold seqZ. rewrite Z2Nat.inj_add, seq_app, fmap_app by done. + f_equal. rewrite Nat.add_comm, <-!fmap_add_seq, <-list_fmap_compose. + apply list_fmap_ext; naive_solver auto with lia. Qed. Lemma seqZ_S m i : seqZ m (S i) = seqZ m i ++ [m + i].