@@ -295,6 +295,7 @@ data PTerm = PQuote Raw
295 | PReturn FC
295 | PReturn FC
296 | PMetavar Name
296 | PMetavar Name
297 | PProof [PTactic]
297 | PProof [PTactic]
298+ | PTactics [PTactic] -- as PProof, but no auto solving
298 | PElabError String -- error to report on elaboration
299 | PElabError String -- error to report on elaboration
299 deriving Eq
300 deriving Eq
@@ -310,6 +311,7 @@ mapPT f t = f (mpt t) where
310 mpt (PHidden t) = PHidden (mapPT f t)
311 mpt (PHidden t) = PHidden (mapPT f t)
311 mpt (PDoBlock ds) = PDoBlock (map (fmap (mapPT f)) ds)
312 mpt (PDoBlock ds) = PDoBlock (map (fmap (mapPT f)) ds)
312 mpt (PProof ts) = PProof (map (fmap (mapPT f)) ts)
313 mpt (PProof ts) = PProof (map (fmap (mapPT f)) ts)
314+ mpt (PTactics ts) = PTactics (map (fmap (mapPT f)) ts)
313 mpt x = x
315 mpt x = x
@@ -319,6 +321,8 @@ data PTactic' t = Intro [Name] | Focus Name
321 | ProofState | ProofTerm | Undo
323 | ProofState | ProofTerm | Undo
324+ | Try (PTactic' t) (PTactic' t)
325+ | TSeq (PTactic' t) (PTactic' t)
323 deriving (Show, Eq, Functor)
327 deriving (Show, Eq, Functor)
@@ -489,6 +493,7 @@ showImp impl tm = se 10 tm where
489 se p PSet = "Set"
493 se p PSet = "Set"
490 se p (PConstant c) = show c
494 se p (PConstant c) = show c
491 se p (PProof ts) = "proof { " ++ show ts ++ "}"
495 se p (PProof ts) = "proof { " ++ show ts ++ "}"
496+ se p (PTactics ts) = "tactics { " ++ show ts ++ "}"
492 se p (PMetavar n) = "?" ++ show n
497 se p (PMetavar n) = "?" ++ show n
493 se p Placeholder = "_"
498 se p Placeholder = "_"
@@ -617,6 +622,7 @@ expandParams dec ps ns tm = en tm
617 en (PHidden t) = PHidden (en t)
622 en (PHidden t) = PHidden (en t)
618 en (PDoBlock ds) = PDoBlock (map (fmap en) ds)
623 en (PDoBlock ds) = PDoBlock (map (fmap en) ds)
619 en (PProof ts) = PProof (map (fmap en) ts)
624 en (PProof ts) = PProof (map (fmap en) ts)
625+ en (PTactics ts) = PTactics (map (fmap en) ts)
621 en (PQuote (Var n))
627 en (PQuote (Var n))
622 | n `elem` ns = PQuote (Var (dec n))
628 | n `elem` ns = PQuote (Var (dec n))
@@ -809,6 +815,7 @@ addImpl ist ptm = ai [] ptm
809 PPi p n ty' sc'
815 PPi p n ty' sc'
810 ai env (PHidden tm) = PHidden (ai env tm)
816 ai env (PHidden tm) = PHidden (ai env tm)
811 ai env (PProof ts) = PProof (map (fmap (ai env)) ts)
817 ai env (PProof ts) = PProof (map (fmap (ai env)) ts)
818+ ai env (PTactics ts) = PTactics (map (fmap (ai env)) ts)
812 ai env tm = tm
819 ai env tm = tm
814aiFn :: IState -> FC -> Name -> [PArg] -> PTerm
821aiFn :: IState -> FC -> Name -> [PArg] -> PTerm