@[simp]
theorem Subarray.forIn_toList {α : Type u} {s : Subarray α} {m : Type v → Type w} [Monad m] [LawfulMonad m] {γ : Type v} {init : γ} {f : α → γ → m (ForInStep γ)} :
theorem Subarray.forIn_eq_forIn_toList {α : Type u} {s : Subarray α} {m : Type v → Type w} [Monad m] [LawfulMonad m] {γ : Type v} {init : γ} {f : α → γ → m (ForInStep γ)} :
@[simp]
theorem Subarray.forIn_toArray {α : Type u} {s : Subarray α} {m : Type v → Type w} [Monad m] [LawfulMonad m] {γ : Type v} {init : γ} {f : α → γ → m (ForInStep γ)} :
theorem Subarray.sliceFoldl_eq_foldl {β : Type u_1} {init : β} {α : Type u} {s : Subarray α} {f : β → α → β} :
theorem Subarray.foldlM_toList {a✝ : Type u_1} {init : a✝} {m : Type u_1 → Type u_2} [Monad m] {α : Type u} {s : Subarray α} {f : a✝ → α → m a✝} [LawfulMonad m] :
theorem Subarray.foldl_toList {α✝ : Type u_1} {init : α✝} {α : Type u} {s : Subarray α} {f : α✝ → α → α✝} :
@[simp]
@[simp]
@[simp]
@[simp]
theorem Subarray.getElem_toList {α : Type u_1} {i : Nat} {xs : Subarray α} {h : i < (Std.Slice.toList xs).length} :
theorem Subarray.getElem_eq_getElem_toList {α : Type u_1} {i : Nat} {xs : Subarray α} {h : i < Std.Slice.size xs} :
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
theorem Array.mkSlice_rco_eq_mkSlice_rco_min {α : Type u_1} {xs : Array α} {lo hi : Nat} :
Std.Rco.Sliceable.mkSlice xs (lo...hi) = Std.Rco.Sliceable.mkSlice xs (min lo (min hi xs.size)...min hi xs.size)
@[simp]
@[simp]
@[simp]
@[simp]
theorem Array.mkSlice_rcc_eq_mkSlice_rco_min {α : Type u_1} {xs : Array α} {lo hi : Nat} :
Std.Rcc.Sliceable.mkSlice xs (lo...=hi) = Std.Rco.Sliceable.mkSlice xs (min lo (min (hi + 1) xs.size)...min (hi + 1) xs.size)
@[simp]
@[simp]
theorem Array.toList_mkSlice_rcc {α : Type u_1} {xs : Array α} {lo hi : Nat} :
Std.Slice.toList (Std.Rcc.Sliceable.mkSlice xs (lo...=hi)) = List.drop lo (List.take (hi + 1) xs.toList)
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
theorem Array.mkSlice_roo_eq_mkSlice_roo_min {α : Type u_1} {xs : Array α} {lo hi : Nat} :
Std.Roo.Sliceable.mkSlice xs (lo<...hi) = Std.Rco.Sliceable.mkSlice xs (min (lo + 1) (min hi xs.size)...min hi xs.size)
@[simp]
theorem Array.toList_mkSlice_roo {α : Type u_1} {xs : Array α} {lo hi : Nat} :
Std.Slice.toList (Std.Roo.Sliceable.mkSlice xs (lo<...hi)) = List.drop (lo + 1) (List.take hi xs.toList)
@[simp]
@[simp]
@[simp]
@[simp]
theorem Array.toList_mkSlice_roc {α : Type u_1} {xs : Array α} {lo hi : Nat} :
Std.Slice.toList (Std.Roc.Sliceable.mkSlice xs (lo<...=hi)) = List.drop (lo + 1) (List.take (hi + 1) xs.toList)
@[simp]
@[simp]
@[simp]
@[simp]
theorem Array.mkSlice_roi_eq_mkSlice_roo_min {α : Type u_1} {xs : Array α} {lo : Nat} :
Std.Roi.Sliceable.mkSlice xs (lo<...*) = Std.Rco.Sliceable.mkSlice xs (min (lo + 1) xs.size...xs.size)
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
theorem Subarray.toList_mkSlice_rco {α : Type u_1} {xs : Subarray α} {lo hi : Nat} :
Std.Slice.toList (Std.Rco.Sliceable.mkSlice xs (lo...hi)) = List.drop lo (List.take hi (Std.Slice.toList xs))
@[simp]
@[simp]
@[simp]
theorem Subarray.toList_mkSlice_rcc {α : Type u_1} {xs : Subarray α} {lo hi : Nat} :
Std.Slice.toList (Std.Rcc.Sliceable.mkSlice xs (lo...=hi)) = List.drop lo (List.take (hi + 1) (Std.Slice.toList xs))
@[simp]
theorem Subarray.toArray_mkSlice_rcc {α : Type u_1} {xs : Subarray α} {lo hi : Nat} :
Std.Slice.toArray (Std.Rcc.Sliceable.mkSlice xs (lo...=hi)) = (Std.Slice.toArray xs).extract lo (hi + 1)
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
theorem Subarray.toList_mkSlice_roo {α : Type u_1} {xs : Subarray α} {lo hi : Nat} :
Std.Slice.toList (Std.Roo.Sliceable.mkSlice xs (lo<...hi)) = List.drop (lo + 1) (List.take hi (Std.Slice.toList xs))
@[simp]
theorem Subarray.toArray_mkSlice_roo {α : Type u_1} {xs : Subarray α} {lo hi : Nat} :
Std.Slice.toArray (Std.Roo.Sliceable.mkSlice xs (lo<...hi)) = (Std.Slice.toArray xs).extract (lo + 1) hi
@[simp]
@[simp]
theorem Subarray.toList_mkSlice_roc {α : Type u_1} {xs : Subarray α} {lo hi : Nat} :
Std.Slice.toList (Std.Roc.Sliceable.mkSlice xs (lo<...=hi)) = List.drop (lo + 1) (List.take (hi + 1) (Std.Slice.toList xs))
@[simp]
theorem Subarray.toArray_mkSlice_roc {α : Type u_1} {xs : Subarray α} {lo hi : Nat} :
Std.Slice.toArray (Std.Roc.Sliceable.mkSlice xs (lo<...=hi)) = (Std.Slice.toArray xs).extract (lo + 1) (hi + 1)
@[simp]
theorem Subarray.size_mkSlice_roc {α : Type u_1} {xs : Subarray α} {lo hi : Nat} :
Std.Slice.size (Std.Roc.Sliceable.mkSlice xs (lo<...=hi)) = min (hi + 1) (Std.Slice.size xs) - (lo + 1)
@[simp]
theorem Subarray.toList_mkSlice_roi {α : Type u_1} {xs : Subarray α} {lo : Nat} :
Std.Slice.toList (Std.Roi.Sliceable.mkSlice xs (lo<...*)) = List.drop (lo + 1) (Std.Slice.toList xs)
@[simp]
theorem Subarray.toArray_mkSlice_roi {α : Type u_1} {xs : Subarray α} {lo : Nat} :
Std.Slice.toArray (Std.Roi.Sliceable.mkSlice xs (lo<...*)) = (Std.Slice.toArray xs).extract (lo + 1)
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
theorem Subarray.toArray_mkSlice_ric {α : Type u_1} {xs : Subarray α} {hi : Nat} :
Std.Slice.toArray (Std.Ric.Sliceable.mkSlice xs *...=hi) = (Std.Slice.toArray xs).extract 0 (hi + 1)
@[simp]
@[simp]