on master help sign in
Change to a recoverable error in proof search

This means if a constructor fails when deep in search, instead of abandoning the whole thing we'll just move on to the next metavariable. This effectively gives backtracking for the 'search' tactic. Of course, care is needed in choosing what to search for (make sure the types are descriptive enough to cut off search, in particular), because if it goes really deep this could take a long time!

commitec06f94a95129954287869fbed803a5b2013be61 authorEdwin Brady <ecb10@st-andrews.ac.uk> dateThu 5 Mar 2015, 16:00 (12 years ago) parentb56f5c1
1 file changed+1−1
src/Idris/ProofSearch.hs+1−1
src/Idris/ProofSearch.hs+1−1
@@ -138,7 +138,7 @@ proofSearch rec fromProver ambigok deferonfail maxDepth elab fn nroot hints ist
138138 True)
139139 -- if all else fails, make a new metavariable
140140 (if fromProver
141− then cantSolveGoal
141+ then fail "cantSolveGoal"
142142 else do attack; defer [] nroot; solve) True) True
143143
144144 getFn d Nothing = []