diff options
Diffstat (limited to 'backends/lean/Base')
-rw-r--r-- | backends/lean/Base/Primitives/Base.lean | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/backends/lean/Base/Primitives/Base.lean b/backends/lean/Base/Primitives/Base.lean index 0b9d9c39..0c64eca1 100644 --- a/backends/lean/Base/Primitives/Base.lean +++ b/backends/lean/Base/Primitives/Base.lean @@ -69,7 +69,9 @@ def div? {α: Type u} (r: Result α): Bool := def massert (b:Bool) : Result Unit := if b then ret () else fail assertionFailure -def eval_global {α: Type u} (x: Result α) (_: ret? x := by decide): α := +macro "prove_eval_global" : tactic => `(tactic| first | apply Eq.refl | decide) + +def eval_global {α: Type u} (x: Result α) (_: ret? x := by prove_eval_global) : α := match x with | fail _ | div => by contradiction | ret x => x |