lean2/tests/lean/add_assoc.lean.expected.out
Leonardo de Moura 7f53cb9601 feat(frontends/lean/parser): add_rewrite take the 'using' command into account
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-01-28 01:15:28 -08:00

23 lines
1.1 KiB
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.

Set: pp::colors
Set: pp::unicode
Imported 'tactic'
Using: Nat
Proved: add_assoc
Nat::add_zerol : ∀ a : , 0 + a = a
Nat::add_succl : ∀ a b : , a + 1 + b = a + b + 1
@eq_id : ∀ (A : TypeU) (a : A), a = a ↔
theorem add_assoc (a b c : ) : a + (b + c) = a + b + c :=
Nat::induction_on
a
(let have_expr : 0 + (b + c) = 0 + b + c :=
eqt_elim (trans (congr (congr2 eq (Nat::add_zerol (b + c)))
(congr1 c (congr2 Nat::add (Nat::add_zerol b))))
(eq_id (b + c)))
in have_expr)
(λ (n : ) (iH : n + (b + c) = n + b + c),
let have_expr : n + 1 + (b + c) = n + 1 + b + c :=
eqt_elim (trans (congr (congr2 eq (trans (Nat::add_succl n (b + c)) (congr1 1 (congr2 Nat::add iH))))
(trans (congr1 c (congr2 Nat::add (Nat::add_succl n b)))
(Nat::add_succl (n + b) c)))
(eq_id (n + b + c + 1)))
in have_expr)