Implement provider-neutral Lean reasoning and evaluation foundation
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
import unittest
|
||||
from lean_agent.core import LeanVerifier, solve, extract
|
||||
class Scripted:
|
||||
def __init__(self): self.calls = 0
|
||||
def complete(self, messages):
|
||||
self.calls += 1
|
||||
return 'exact False.elim' if self.calls == 1 else 'intro n; rfl'
|
||||
class Tests(unittest.TestCase):
|
||||
def test_repair(self):
|
||||
result = solve(Scripted(), LeanVerifier(), {'id':'x','statement':'∀ n : Nat, n = n'})
|
||||
self.assertTrue(result['success'])
|
||||
self.assertEqual(len(result['attempts']), 2)
|
||||
def test_holes(self):
|
||||
for proof in ['sorry', 'admit', 'exact (by sorry)', 'rfl\n#eval 1']:
|
||||
self.assertFalse(LeanVerifier().check('1 = 1', proof).success)
|
||||
def test_false(self):
|
||||
self.assertFalse(LeanVerifier().check('False', 'trivial').success)
|
||||
def test_extract(self):
|
||||
self.assertEqual(extract('```lean\nby\n rfl\n```'), 'rfl')
|
||||
if __name__ == '__main__': unittest.main()
|
||||
Reference in New Issue
Block a user