@@ -27,6 +27,7 @@ data Goal = GD { premises :: Env,
27data Command = Theorem Name Raw
27data Command = Theorem Name Raw
28 | Eval Raw
28 | Eval Raw
30 | Tac Tactic
31 | Tac Tactic
32data Tactic = Attack
33data Tactic = Attack
@@ -34,6 +35,7 @@ data Tactic = Attack
34 | Fill Raw
35 | Fill Raw
37 | EvalIn Raw
39 | EvalIn Raw
38 | CheckIn Raw
40 | CheckIn Raw
39 | Intro Name
41 | Intro Name
@@ -169,6 +171,10 @@ intro n ctxt env (Bind x (Hole t) (V 0)) =
169 _ -> fail "Nothing to introduce"
171 _ -> fail "Nothing to introduce"
170intro ctxt env _ _ = fail "Can't introduce here."
172intro ctxt env _ _ = fail "Can't introduce here."
175+compute ctxt env (Bind x (Hole ty) sc) =
176+ do return $ Bind x (Hole (normalise ctxt env ty)) sc
172check_in :: Raw -> RunTactic
178check_in :: Raw -> RunTactic
173check_in t ctxt env tm =
179check_in t ctxt env tm =
174 do (val, valty) <- lift $ check ctxt env t
180 do (val, valty) <- lift $ check ctxt env t
@@ -213,6 +219,7 @@ process t h ps = tactic (Just h) ps (context ps) (mktac t)
213 mktac (Fill r) = fill r
219 mktac (Fill r) = fill r
214 mktac Regret = regret
220 mktac Regret = regret
215 mktac Solve = solve
221 mktac Solve = solve
222+ mktac Compute = compute
216 mktac (Intro n) = intro n
223 mktac (Intro n) = intro n
217 mktac (CheckIn r) = check_in r
224 mktac (CheckIn r) = check_in r
218 mktac (EvalIn r) = eval_in r
225 mktac (EvalIn r) = eval_in r