open tactic
meta def nat.to_expr (n : nat) : tactic expr := to_expr (quote n)
run_cmd attribute.fingerprint `reducible >>= trace

definition ex0 : nat :=
by attribute.fingerprint `reducible >>= nat.to_expr >>= exact

attribute [reducible]
definition f : nat := 10

run_cmd attribute.fingerprint `reducible >>= trace

definition ex1 : nat :=
by attribute.fingerprint `reducible >>= nat.to_expr >>= exact

#eval ex1

definition g : nat := 20

run_cmd attribute.fingerprint `reducible >>= trace

definition ex2 : nat :=
by attribute.fingerprint `reducible >>= nat.to_expr >>= exact

#eval ex2

example : ex1 = ex2 :=
rfl

definition h : nat := 20

definition ex3 : nat :=
by attribute.fingerprint `reducible >>= nat.to_expr >>= exact

example : ex1 = ex3 :=
rfl
