lean2/tests/lean/num_tst.lean

46 lines
865 B
Text
Raw Normal View History

import num tactic
using num
variable a : num
add_rewrite fact_zero fact_succ one_eq_succ_zero
(*
local t1 = parse_lean("num::add num::one (num::succ num::one)")
print(t1)
print("====>")
local t2, pr = simplify(t1)
print(t2)
print(get_environment():type_check(pr))
*)
print ""
(*
local t1 = parse_lean("num::mul (num::succ (num::succ num::one)) (num::succ num::one)")
print(t1)
print("====>")
local t2, pr = simplify(t1)
print(t2)
print(get_environment():type_check(pr))
*)
print ""
theorem T1 : one * (succ one) = (succ one)
:= by simp
theorem T2 : a * (succ one) = a + a
:= by simp
theorem T3 : one = succ zero
:= refl one -- one is not opaque
set_option simplifier::unfold true
definition two := succ one
definition three := succ two
definition four := succ three
set_option pp::implicit true
theorem test : fact four = four * three * two
:= by simp