This commit is contained in:
Leonardo de Moura 2022-07-26 05:51:02 -07:00
parent 3896244c55
commit 385cfa6001
2 changed files with 17 additions and 1 deletions

View file

@ -18,7 +18,7 @@ def elabCalcSteps (steps : Array Syntax) : TacticM Expr := do
where
go : TermElabM Expr := do
let e ← Term.elabCalcSteps steps
Term.synthesizeSyntheticMVars
Term.synthesizeSyntheticMVars (mayPostpone := false)
instantiateMVars e
@[builtinTactic calcTactic]

16
tests/lean/run/1372.lean Normal file
View file

@ -0,0 +1,16 @@
example (x₁ x₂ y₁ y₂ : Nat) : (x₁ + x₂) + (y₁ + y₂) = (x₁ + y₁) + (x₂ + y₂) := by
calc (x₁ + x₂) + (y₁ + y₂)
= x₁ + (x₂ + (y₁ + y₂)) := by rw [Nat.add_assoc]
_ = x₁ + (y₁ + (x₂ + y₂)) := by rw [Nat.add_left_comm x₂ y₁ y₂]
_ = (x₁ + y₁) + (x₂ + y₂) := by rw [Nat.add_assoc]
example (n x₁ x₂ y₁ y₂ : Nat) : n = 0 → (x₁ + x₂) + (y₁ + y₂) = (x₁ + y₁) + (x₂ + y₂) := by
intro h
induction n with
| zero =>
calc (x₁ + x₂) + (y₁ + y₂)
= x₁ + (x₂ + (y₁ + y₂)) := by rw [Nat.add_assoc]
_ = x₁ + (y₁ + (x₂ + y₂)) := by rw [Nat.add_left_comm x₂ y₁ y₂]
_ = (x₁ + y₁) + (x₂ + y₂) := by rw [Nat.add_assoc]
| succ _ _ => contradiction