@@ -42,12 +42,18 @@ elabRewrite elab ist fc Nothing rule sc newg
43elabRewrite elab ist fc Nothing rule sc newg
43elabRewrite elab ist fc Nothing rule sc newg
44 = elabRewrite elab ist fc (Just (sUN "rewrite__impl")) rule sc newg
44 = elabRewrite elab ist fc (Just (sUN "rewrite__impl")) rule sc newg
45−elabRewrite elab ist fc (Just substfn_in) rule sc newg
45+elabRewrite elab ist fc (Just substfn_in) rule sc_in newg
46 = do substfn <- case lookupTyName substfn_in (tt_ctxt ist) of
46 = do substfn <- case lookupTyName substfn_in (tt_ctxt ist) of
47 [(n, t)] -> return n
47 [(n, t)] -> return n
48 [] -> lift . tfail . NoSuchVariable $ substfn_in
48 [] -> lift . tfail . NoSuchVariable $ substfn_in
49 more -> lift . tfail . CantResolveAlts $ map fst more
49 more -> lift . tfail . CantResolveAlts $ map fst more
52+ Nothing -> return sc_in
54+ letn <- getNameFrom (sMN 0 "rewrite_result")
55+ return $ PLet fc letn fc t sc_in
51 tyn <- getNameFrom (sMN 0 "rty")
57 tyn <- getNameFrom (sMN 0 "rty")
52 claim tyn RType
58 claim tyn RType
53 valn <- getNameFrom (sMN 0 "rval")
59 valn <- getNameFrom (sMN 0 "rval")
@@ -115,19 +121,3 @@ elabRewrite elab ist fc (Just substfn_in) rule sc newg
115 removeImp t = t
121 removeImp t = t
116 phApps tm = tm
122 phApps tm = tm
120− tyn <- getNameFrom (sMN 0 "ety")
122− valn <- getNameFrom (sMN 0 "eqval")
123− claim valn (Var tyn)
124− letn <- getNameFrom (sMN 0 "equiv_val")
125− letbind letn (Var tyn) (Var valn)
130− elab (PRef fc [] letn)