tinyevil

Untitled

Feb 22nd, 2018
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.33 KB | None | 0 0
  1. One subtle difference between constraints and propositions is:
  2.  
  3. Suppose
  4. div1 : forall n m, m <> 0 -> nat
  5.  
  6. div2 :: (n::nat) (m::nat) :: nat | m != 0
  7.  
  8. There is no way to typecheck
  9. div2 7 0
  10.  
  11. But, within a nonsensical branch you can obtain a proof of 0 <> 0:
  12. let f:False
  13.  
  14. div1 7 0 (False_ind (0 <> 0) f)
Add Comment
Please, Sign In to add comment