Definitions on Arrays #
This file contains various definitions on Array
. It does not contain
proofs about these definitions, those are contained in other files in Mathlib.Data.Array
.
Permute the array using a sequence of indices defining a cyclic permutation.
If the list of indices l = [i₁, i₂, ..., iₙ]
are all distinct then
(cyclicPermute! a l)[iₖ₊₁] = a[iₖ]
and (cyclicPermute! a l)[i₀] = a[iₙ]
Equations
- Array.cyclicPermute! x✝ x = match x✝, x with | a, [] => a | a, i :: is => Array.cyclicPermute!.cyclicPermuteAux a is a[i]! i
Instances For
Equations
- Array.cyclicPermute!.cyclicPermuteAux x✝¹ [] x✝ x = Array.set! x✝¹ x x✝
- Array.cyclicPermute!.cyclicPermuteAux x✝¹ (i :: is) x✝ x = match Array.swapAt! x✝¹ i x✝ with | (y, a) => Array.cyclicPermute!.cyclicPermuteAux a is y x
Instances For
Permute the array using a list of cycles.
Equations
- Array.permute! a ls = List.foldl (fun (x : Array α) (x_1 : List Nat) => Array.cyclicPermute! x x_1) a ls