val equal (#a:Type) (#len:size_nat) (s1:lseq a len) (s2:lseq a len) : Type0
let equal #a #len s1 s2 =
  forall (i:size_nat{i < len}).{:pattern (index s1 i); (index s2 i)} index s1 i == index s2 i
val equal (#a:Type) (#len:size_nat) (s1:lseq a len) (s2:lseq a len) : Type0
let equal #a #len s1 s2 =
forall (i: size_nat{i < len}). {:pattern (index s1 i); (index s2 i)} index s1 i == index s2 i
Lib.Sequence.fst.checked
prims.fst.checked Lib.LoopCombinators.fsti.checked Lib.IntTypes.fsti.checked FStar.Seq.Properties.fsti.checked FStar.Seq.fst.checked FStar.Pervasives.Native.fst.checked FStar.Pervasives.fsti.checked FStar.Mul.fst.checked FStar.Math.Lemmas.fst.checked FStar.List.Tot.fst.checked FStar.Calc.fsti.checked
Lib.Sequence.fst
Lib.IntTypes.size_nat Lib.Sequence.lseq Prims.l_Forall Prims.b2t Prims.op_LessThan Prims.eq2 Prims.l_or FStar.Seq.Base.index Lib.Sequence.to_seq Lib.Sequence.index
module Lib.Sequence

open FStar.Mul
open Lib.IntTypes
open Lib.LoopCombinators

#set-options "--z3rlimit 30 --max_fuel 0 --max_ifuel 0 --using_facts_from '-* +Prims +FStar.Pervasives +FStar.Math.Lemmas +FStar.Seq +Lib.IntTypes +Lib.Sequence'"

let index #a #len s n = Seq.index s n

let create #a len init = Seq.create #a len init

let concat #a #len0 #len1 s0 s1 = Seq.append s0 s1

let to_list #a s = Seq.seq_to_list s

let of_list #a l = Seq.seq_of_list #a l

let of_list_index #a l i =
  Seq.lemma_seq_of_list_index #a l i
val equal (#a:Type) (#len:size_nat) (s1:lseq a len) (s2:lseq a len) : Type0
s1: Lib.Sequence.lseq a len -> s2: Lib.Sequence.lseq a len -> Type0