Unify conclusion before instantiating premises to save some time
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
This commit is contained in:
parent
12fa4dc1fd
commit
1fca9171b1
|
@ -105,12 +105,12 @@ reifyProofTree (MkProofTree node) =
|
|||
rule : Term UnificationVar -> Rule -> Prover ProofTree
|
||||
rule t r =
|
||||
withVars (pure Tuple.pair
|
||||
|> apply (liftInstantiation instantiate r.conclusion)
|
||||
|> apply (liftInstantiation instantiate r.conclusion
|
||||
|> andThen (\conc -> liftUnification unify t conc))
|
||||
|> apply (liftInstantiation instantiateList r.premises))
|
||||
|> andThen (\(conc, prems) ->
|
||||
pure (\tp trees -> MkProofTree { name = r.name, conclusion = tp, premises = trees })
|
||||
|> apply (liftUnification unify t conc)
|
||||
|> apply (provePremises prems))
|
||||
provePremises prems)
|
||||
|> map (\trees -> MkProofTree { name = r.name, conclusion = t, premises = trees })
|
||||
|
||||
collectStrings : Term UnificationVar -> Prover (List String)
|
||||
collectStrings t =
|
||||
|
|
Loading…
Reference in New Issue
Block a user