module Vector.SubVector where

open import Level using (Level; levelOfType)
open import Function
open import Data.Nat as  using ()
open import Data.Fin
open import Data.Vec.Functional
open import Relation.Binary.PropositionalEquality

private variable
  a : Level
  A : Set a
  m n : 

-- This is a 3-arg. predicate, but the "corresponding" SubMatrix is a 2-arg. "container" of a matrix.
record SubVector (xs : Vector A n) (columns : Vector (Fin n) m) (ys : Vector A m) : Set (levelOfType A) where
  constructor subProp
  field
    subVecProp :  i  ys i  xs (columns i)

-- Another way could be to have SubVector xs ys where field columns : ...