Advertisement
Guest User

Untitled

a guest
Jan 18th, 2020
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.72 KB | None | 0 0
  1. %default total
  2.  
  3.  
  4. -- first solution
  5.  
  6. data Is012 : (x: Nat) -> Type where
  7. IsZero : Is012 Z
  8. IsOne : Is012 (S Z)
  9. IsTwo : Is012 (S (S Z))
  10.  
  11. lt3_proof: (LT x 3) -> (Is012 x)
  12. lt3_proof (LTESucc LTEZero) = IsZero
  13. lt3_proof (LTESucc (LTESucc LTEZero)) = IsOne
  14. lt3_proof (LTESucc (LTESucc (LTESucc LTEZero))) = IsTwo
  15.  
  16.  
  17. -- second solution
  18.  
  19. lt3_proof_2: (LT x 3) -> ( (g : Type) -> ( ((x = 0) -> g) -> ((x = 1) -> g) -> ((x = 2) -> g) -> g) )
  20. lt3_proof_2 (LTESucc LTEZero) = \t => \f0 => \f1 => \f2 => f0 Refl
  21. lt3_proof_2 (LTESucc (LTESucc LTEZero)) = \t => \f0 => \f1 => \f2 => f1 Refl
  22. lt3_proof_2 (LTESucc (LTESucc (LTESucc LTEZero))) = \t => \f0 => \f1 => \f2 => f2 Refl
  23.  
  24.  
  25. main : IO ()
  26. main = putStrLn "Correct"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement