lean2/tests/lean/run/constr_tac4.lean

21 lines
567 B
Text

import data.nat
open nat
namespace foo
definition lt.trans {a b c : nat} (H₁ : a < b) (H₂ : b < c) : a < c :=
have aux : a < b → a < c, from
le.rec_on H₂
(λ h₁, lt.step h₁)
(λ b₁ bb₁ ih h₁, by constructor; exact ih h₁),
aux H₁
definition succ_lt_succ {a b : nat} (H : a < b) : succ a < succ b :=
le.rec_on H
(by constructor)
(λ b hlt ih, lt.trans ih (by constructor))
definition lt_of_succ_lt {a b : nat} (H : succ a < b) : a < b :=
le.rec_on H
(by constructor; constructor)
(λ b h ih, by constructor; exact ih)
end foo