proposition: Lemma EquivFormat_UnderSequence {S T : Type} {monoid : Monoid T} : forall (format1 format2 format2' : FormatM S T), EquivFormat format2 format2' -> EquivFormat (format1 ++ format2) (format1 ++ format2').
proof: Proof. unfold EquivFormat; intros. eapply refineEquiv_under_compose; eauto. Qed.
imports: Coq.Bool.Bool Coq.ZArith.ZArith Fiat.Common.DecideableEnsembles Fiat.Common.EnumType Fiat.Common.BoundedLookup Fiat.Common.ilist Fiat.Common.Tactics.CacheStringConstant Fiat.Common.IterateBoundedIndex Fiat.Computation Fiat.QueryStructure.Specification.Representation.Notations Fiat.QueryStructure.Specification.Representation.Heading Fiat.QueryStructure.Specification.Representation.Tuple Fiat.Narcissus.BinLib.Core Fiat.Narcissus.Common.Specs Fiat.Narcissus.Common.WordFacts Fiat.Narcissus.Common.ComposeIf Fiat.Narcissus.Common.ComposeOpt Fiat.Narcissus.BaseFormats Fiat.Narcissus.Formats.Option Fiat.Narcissus.Formats.Empty Fiat.Narcissus.Formats.Sequence Fiat.Narcissus.Formats.FixListOpt Fiat.Narcissus.Formats.Bool Fiat.Narcissus.Stores.EmptyStore Fiat.Narcissus.Formats.WordOpt Fiat.Narcissus.Formats.NatOpt Fiat.Narcissus.Formats.Vector Fiat.Narcissus.Formats.EnumOpt Fiat.Narcissus.Formats.SumTypeOpt Fiat.Narcissus.Formats.StringOpt Fiat.Narcissus.Common.Sig