feat: compute fvarSubst

This commit is contained in:
Leonardo de Moura 2020-02-27 10:56:29 -08:00
parent 6a19f54344
commit b83691baa2
2 changed files with 8 additions and 1 deletions

View file

@ -20,6 +20,8 @@ structure FVarSubst :=
namespace FVarSubst
def empty : FVarSubst := {}
def insert (s : FVarSubst) (fvarId : FVarId) (e : Expr) : FVarSubst :=
{ map := s.map.insert fvarId e }

View file

@ -57,7 +57,12 @@ withMVarContext mvarId $ do
mvarId ← clear mvarId hFVarId;
mvarId ← clear mvarId aFVarId;
(newFVars, mvarId) ← introN mvarId (vars.size - 2) [] false;
fvarSubst ← pure {FVarSubst . }; -- TODO
fvarSubst ← newFVars.size.foldM
(fun i (fvarSubst : FVarSubst) =>
let var := vars.get! i;
let newFVar := newFVars.get! i;
pure $ fvarSubst.insert var (mkFVar newFVar))
FVarSubst.empty;
pure (fvarSubst, mvarId)
};
if depElim then do