Merge pull request 'fix(tactic): Erase finished calc goal' (#228) from fix/calc-erase-goal into dev
Reviewed-on: #228
This commit is contained in:
commit
60dc07e559
|
@ -144,11 +144,12 @@ protected def Fragment.step (fragment : Fragment) (goal : MVarId) (s : String) (
|
|||
unless ← Meta.isDefEq proofType target do throwFailed
|
||||
remainder? := .some lastStepGoal.mvarId!
|
||||
goal.assign proof
|
||||
let map := map.erase goal
|
||||
|
||||
let goals := [ mvarBranch ] ++ remainder?.toList
|
||||
Elab.Tactic.setGoals goals
|
||||
match remainder? with
|
||||
| .some goal => return map.erase goal |>.insert goal $ .calc (.some rhs)
|
||||
| .some goal => return map.insert goal $ .calc (.some rhs)
|
||||
| .none => return map
|
||||
| .conv .. => do
|
||||
throwError "Direct operation on conversion tactic parent goal is not allowed"
|
||||
|
|
|
@ -126,8 +126,8 @@ def test_conv_simple: TestM Unit := do
|
|||
| other => do
|
||||
addTest $ assertUnreachable $ other.toString
|
||||
return ()
|
||||
addTest $ LSpec.check tactic ((← stateF.serializeGoals).map (·.devolatilize) =
|
||||
#[])
|
||||
checkEq tactic ((← stateF.serializeGoals).map (·.devolatilize)) #[]
|
||||
checkEq "fragments" stateF.fragments.size 0
|
||||
|
||||
where
|
||||
h := "b + a + c1 = b + a + c2"
|
||||
|
@ -180,6 +180,7 @@ def test_conv_unshielded : TestM Unit := do
|
|||
let .success state _ ← state.tryTactic .unfocus tactic | fail s!"{tactic} failed"
|
||||
let root? := state.rootExpr?
|
||||
checkTrue "root" root?.isSome
|
||||
checkEq "fragments" state.fragments.size 0
|
||||
where
|
||||
interiorGoal (free: List (String × String)) (target: String) :=
|
||||
let free := [("p", "Prop"), ("x", "Nat"), ("y", "Nat"), ("z", "Nat"), ("hp", "p"), ("hi", "p → x = y")] ++ free
|
||||
|
|
Loading…
Reference in New Issue