Idris2/tests/idris2/reflection006/refleq.idr

25 lines
587 B
Idris
Raw Normal View History

import Language.Reflection
%language ElabReflection
solveReflected : TTImp -> Elab any
solveReflected `(Builtin.Equal {a=_} {b=_} ~(left) ~(right))
= do logTerm 0 "Left" left
logTerm 0 "Right" right
fail "Not done"
solveReflected g
= do logTerm 0 "Goal" g
fail "I don't know how to prove this"
%macro
prove : Elab any
prove
= do env <- localVars
Just g <- goal
| Nothing => fail "No goal to solve"
logMsg 0 (show env)
solveReflected g
commutes : (x, y : Nat) -> plus x y = plus y x
commutes x y = prove