31 lines
792 B
Text
31 lines
792 B
Text
theorem unsound : False := -- Error
|
|
unsound
|
|
|
|
partial theorem unsound2 : False := -- Error
|
|
unsound2
|
|
|
|
unsafe theorem unsound3 : False := -- Error
|
|
unsound3
|
|
|
|
opaque unsound4 : False -- Error
|
|
|
|
axiom magic : False -- OK
|
|
namespace Foo
|
|
partial def foo (x : Nat) : Nat := foo x -- OK
|
|
|
|
unsafe def unsound2 : False := unsound -- OK
|
|
|
|
partial def unsound3 : False := unsound3 -- Error
|
|
|
|
partial def unsound4 (x : Unit) : False := unsound4 () -- Error
|
|
|
|
partial def badcast1 (x : Nat) : Bool :=
|
|
unsafeCast x -- Error: partial cannot use unsafe constant
|
|
|
|
partial def badcast2 (x : Nat) : Bool :=
|
|
if x == 0 then unsafeCast x -- Error: partial cannot use unsafe constant
|
|
else badcast2 (x + 1)
|
|
|
|
unsafe def badcast3 (x : Nat) : Bool := -- OK
|
|
if x == 0 then unsafeCast x
|
|
else badcast3 (x + 1)
|