@@ -34,8 +34,8 @@ data Goal = GD { premises :: Env,
35data Tactic = Attack
35data Tactic = Attack
36 | Claim Name Raw
36 | Claim Name Raw
37 | Fill Raw
38 | Fill Raw
@@ -179,17 +179,17 @@ movelast n ctxt env t = do action (MoveGoal n)
179regret :: RunTactic
179regret :: RunTactic
180regret = undefined
180regret = undefined
182−fill :: Raw -> RunTactic
182+exact :: Raw -> RunTactic
183−fill guess ctxt env (Bind x (Hole ty) sc) =
183+exact guess ctxt env (Bind x (Hole ty) sc) =
184 do (val, valty) <- lift $ check ctxt env guess
184 do (val, valty) <- lift $ check ctxt env guess
185 lift $ converts ctxt env valty ty
185 lift $ converts ctxt env valty ty
186 return $ Bind x (Guess ty val) sc
186 return $ Bind x (Guess ty val) sc
187−fill _ _ _ _ = fail "Can't fill here."
187+exact _ _ _ _ = fail "Can't fill here."
189-- As fill, but attempts to solve other goals by unification
189-- As fill, but attempts to solve other goals by unification
191−unify_fill :: Raw -> RunTactic
191+fill :: Raw -> RunTactic
192−unify_fill guess ctxt env (Bind x (Hole ty) sc) =
192+fill guess ctxt env (Bind x (Hole ty) sc) =
193 do (val, valty) <- lift $ check ctxt env guess
193 do (val, valty) <- lift $ check ctxt env guess
194 ns <- lift $ unify ctxt env valty ty
194 ns <- lift $ unify ctxt env valty ty
195 solve_all ns
195 solve_all ns
@@ -198,7 +198,7 @@ unify_fill guess ctxt env (Bind x (Hole ty) sc) =
198 solve_all [] = return ()
198 solve_all [] = return ()
199 solve_all ((n, tm): ns) = do action (AlsoSolved n tm)
199 solve_all ((n, tm): ns) = do action (AlsoSolved n tm)
200 solve_all ns
200 solve_all ns
201−unify_fill _ _ _ _ = fail "Can't fill here."
201+fill _ _ _ _ = fail "Can't fill here."
203solve :: RunTactic
203solve :: RunTactic
204solve ctxt env (Bind x (Guess ty val) sc)
204solve ctxt env (Bind x (Guess ty val) sc)
@@ -303,8 +303,8 @@ process :: Tactic -> Name -> ProofState -> StateT TState TC ProofState
303process t h ps = tactic (Just h) ps (context ps) (mktac t)
303process t h ps = tactic (Just h) ps (context ps) (mktac t)
304 where mktac Attack = attack
304 where mktac Attack = attack
305 mktac (Claim n r) = claim n r
305 mktac (Claim n r) = claim n r
306+ mktac (Exact r) = exact r
306 mktac (Fill r) = fill r
307 mktac (Fill r) = fill r
307− mktac (UnifyFill r) = unify_fill r
308 mktac Regret = regret
308 mktac Regret = regret
309 mktac Solve = solve
309 mktac Solve = solve
310 mktac Compute = compute
310 mktac Compute = compute