module Data.Vec.All.Properties.Extra {a p}{A : Set a}{P : A  Set p} where

open import Data.List using (List)
open import Data.List.All as List∀ using ()
open import Data.Vec hiding (_[_]≔_)
open import Data.Vec.All hiding (lookup)
open import Data.Fin

all-fromList :  {xs : List A}  List∀.All P xs  All P (fromList xs)
all-fromList List∀.[] = []
all-fromList (px List∀.∷ p) = px  all-fromList p

_[_]≔_ :  {n}{l : Vec A n}  All P l  (i : Fin n)  P (lookup i l)→ All P l
[] [ () ]≔ px
(px  l) [ zero ]≔ px₁ = px₁  l
(px  l) [ suc i ]≔ px₁ = px  (l [ i ]≔ px₁)