Advertisement
Guest User

Untitled

a guest
Feb 18th, 2020
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. module Test
  2. import Data.Vect
  3.  
  4.  
  5. removeFalses : Vect n Bool -> (m ** Vect m Bool)
  6. removeFalses [] = (Z ** [])
  7. removeFalses (True :: xs) = let (m ** xs') = removeFalses xs in (S m ** True :: xs')
  8. removeFalses (False :: xs) = removeFalses xs
  9.  
  10.  
  11. f : (xs : Vect (S n) Bool) -> Elem True xs -> (Bool, Bool)
  12. f elems p with (removeFalses elems) proof w
  13.     | (Z ** []) = ?help1
  14.     | (S m ** x :: xs) = let Refl = w in ?help2
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement