@@ -295,6 +295,7 @@ data PTerm = PQuote Raw
295295 | PReturn FC
296296 | PMetavar Name
297297 | PProof [PTactic]
298+ | PTactics [PTactic] -- as PProof, but no auto solving
298299 | PElabError String -- error to report on elaboration
299300 deriving Eq
300301
@@ -310,6 +311,7 @@ mapPT f t = f (mpt t) where
310311 mpt (PHidden t) = PHidden (mapPT f t)
311312 mpt (PDoBlock ds) = PDoBlock (map (fmap (mapPT f)) ds)
312313 mpt (PProof ts) = PProof (map (fmap (mapPT f)) ts)
314+ mpt (PTactics ts) = PTactics (map (fmap (mapPT f)) ts)
313315 mpt x = x
314316
315317
@@ -319,6 +321,8 @@ data PTactic' t = Intro [Name] | Focus Name
319321 | Solve
320322 | Attack
321323 | ProofState | ProofTerm | Undo
324+ | Try (PTactic' t) (PTactic' t)
325+ | TSeq (PTactic' t) (PTactic' t)
322326 | Qed
323327 deriving (Show, Eq, Functor)
324328
@@ -489,6 +493,7 @@ showImp impl tm = se 10 tm where
489493 se p PSet = "Set"
490494 se p (PConstant c) = show c
491495 se p (PProof ts) = "proof { " ++ show ts ++ "}"
496+ se p (PTactics ts) = "tactics { " ++ show ts ++ "}"
492497 se p (PMetavar n) = "?" ++ show n
493498 se p Placeholder = "_"
494499
@@ -617,6 +622,7 @@ expandParams dec ps ns tm = en tm
617622 en (PHidden t) = PHidden (en t)
618623 en (PDoBlock ds) = PDoBlock (map (fmap en) ds)
619624 en (PProof ts) = PProof (map (fmap en) ts)
625+ en (PTactics ts) = PTactics (map (fmap en) ts)
620626
621627 en (PQuote (Var n))
622628 | n `elem` ns = PQuote (Var (dec n))
@@ -809,6 +815,7 @@ addImpl ist ptm = ai [] ptm
809815 PPi p n ty' sc'
810816 ai env (PHidden tm) = PHidden (ai env tm)
811817 ai env (PProof ts) = PProof (map (fmap (ai env)) ts)
818+ ai env (PTactics ts) = PTactics (map (fmap (ai env)) ts)
812819 ai env tm = tm
813820
814821aiFn :: IState -> FC -> Name -> [PArg] -> PTerm