proposition: Lemma firstn_skipn_app {A} : forall (l1 l2 l3 : list A), firstn (length l3) (skipn (length l1 + length l2) (l1 ++ l2 ++ l3)) = l3.
proof: Proof. simpl; intros. rewrite <- app_length, List.app_assoc, skipn_app. apply firstn_self. Qed.
imports: Fiat.Common.Coq__8_4__8_5__Compat Coq.Bool.Bool Coq.ZArith.ZArith Coq.Lists.List Fiat.Common.DecideableEnsembles Fiat.Common.EnumType Fiat.Common.BoundedLookup Fiat.Common Fiat.Common.ilist Fiat.Common.Tactics.CacheStringConstant Fiat.Common.IterateBoundedIndex Fiat.Computation Bedrock.Word