@@ -33,9 +33,12 @@ data Tactic = Attack
33 | Fill Raw
33 | Fill Raw
36 | Intro Name
38 | Intro Name
37 | ProofState
39 | ProofState
41+-- Next: add 'EvalHere' and 'CheckHere' tactics
40data TacticAction = AddGoal Name
43data TacticAction = AddGoal Name
41 | Solved Name
44 | Solved Name
@@ -149,6 +152,19 @@ intro n ctxt env (Bind x (Hole t) (V 0)) =
149 _ -> fail "Nothing to introduce"
152 _ -> fail "Nothing to introduce"
150intro ctxt env _ _ = fail "Can't introduce here."
153intro ctxt env _ _ = fail "Can't introduce here."
155+check_in :: Raw -> RunTactic
156+check_in t ctxt env tm =
157+ do (val, valty) <- lift $ check ctxt env t
158+ action (Log (showEnv env val ++ " : " ++ showEnv env valty))
161+eval_in :: Raw -> RunTactic
162+eval_in t ctxt env tm =
163+ do (val, valty) <- lift $ check ctxt env t
164+ action (Log (showEnv env (normalise ctxt env val) ++ " : " ++ showEnv env valty))
152processTactic :: Tactic -> ProofState -> TC (ProofState, String)
168processTactic :: Tactic -> ProofState -> TC (ProofState, String)
153processTactic QED ps = case holes ps of
169processTactic QED ps = case holes ps of
154 [] -> return (ps { done = True }, "Proof complete.")
170 [] -> return (ps { done = True }, "Proof complete.")
@@ -179,4 +195,5 @@ process t h ps = tactic (Just h) ps (context ps) (mktac t)
179 mktac Regret = regret
195 mktac Regret = regret
180 mktac Solve = solve
196 mktac Solve = solve
181 mktac (Intro n) = intro n
197 mktac (Intro n) = intro n
182−
198+ mktac (CheckIn r) = check_in r
199+ mktac (EvalIn r) = eval_in r