lean4-htt/tests/lean/congrThmIssue.lean
2022-03-14 14:11:08 -07:00

27 lines
719 B
Text
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

theorem Nat.lt_of_lt_le {x y z : Nat} : x < y → y ≤ z → x < z := by
intro h h'
induction h'
assumption
apply Nat.le_step
assumption
structure ArrayBuffer (α) where
cap : Nat
backing : Fin cap → Option α
size : Nat
h_size : size ≤ cap
h_full : ∀ i, (h:i < size) → (backing ⟨i, Nat.lt_of_lt_le h h_size⟩).isSome
namespace ArrayBuffer
def grow : ArrayBuffer α → ArrayBuffer α :=
λ ⟨cap, backing, size, h_size, h_full⟩ =>
⟨cap + cap,
λ i => if h:i < cap then backing ⟨i,h⟩ else none,
size,
Nat.le_trans h_size (Nat.le_add_left _ _),
by intro i h
simp
trace_state
have : i < cap := Nat.lt_of_lt_le h h_size
simp [*]⟩