lean4-htt/tests/lean/run/1342.lean
Leonardo de Moura 5e877b115b feat: improve calc tactic
> Heather suggested changing the calc tactic (not the term) such that if
the final RHS does not defeq match the goal RHS, it returns a final
inequality as a subgoal.

Closes #1342
2022-07-24 14:30:15 -07:00

58 lines
1.2 KiB
Text

example (a b c : Nat) (h1 : a <= b) (h2 : b <= c) : a <= c :=
calc a
<= b := h1
_ <= c := h2
_ <= c := Nat.le_refl _
example (a b c : Nat) (h1 : a <= b) (h2 : b <= c) : a <= c :=
calc a
<= b := h1
_ <= c := h2
example (a b c : Nat) (h1 : a <= b) (h2 : b <= c) : a <= c :=
calc a <= b := h1
_ <= c := h2
example (a b c : Nat) (h1 : a <= b) (h2 : b <= c) : a <= c :=
calc
a <= b := h1
_ <= c := h2
example (a b c : Nat) (h1 : a <= b) (h2 : b <= c) : a <= c :=
calc
a <= b := sorry
_ <= c := h2
example (a b c : Nat) (h1 : a <= b) (h2 : b <= c) : a <= c := by
calc a
<= b := ?h
_ <= c := h2
case h => exact h1
example (a b c : Nat) (h1 : a <= b) (h2 : b <= c) : a <= c := by
calc a
= a + 0 := rfl
_ <= b := ?h
_ = b := rfl
case h => exact h1
exact h2
example (a b c : Nat) (h1 : a <= b) (h2 : b <= c) : a <= c := by
calc _
<= b := ?h
_ = b := rfl
case h => exact h1
exact h2
example (a b c : Nat) (h1 : a <= b) (h2 : b <= c) : a <= c := by
calc _
<= b := h1
_ = b + 0 := rfl
exact h2
example (a b c : Nat) (h1 : a <= b) (h2 : b <= c) : a <= c := by
calc a
<= b := h1
_ = b + 0 := rfl
exact h2