diff --git a/README.md b/README.md
index 26dcf50..325628b 100644
--- a/README.md
+++ b/README.md
@@ -54,7 +54,55 @@ fn sym(t: type) (a: t) (b: t) (p: ((eq t) a) b) -> ((eq t) b) a {
}
```
-用这几个定义来写点好玩的小证明吧!
+用这几个定义来写点好玩的小证明吧! 哦对了, 有人说要我上传下习题的答案 (
+
+* 用 `nat`、`add`、`mul` 写一些简单的计算:
+
+
+答案
+
+```rs
+fn three -> nat {
+ |t| { |s| { |z| { s (s (s z)) } } }
+}
+
+fn six -> nat {
+ (add three) three
+}
+
+fn nine -> nat {
+ (mul three) three
+}
+```
+
+比如, 输出结果能看到 `six` 内部有 6 个 `f`, 说明计算成功.
+
+
+
+* 用 `eq`、`refl`、`sym` 写一些简单的证明:
+
+
+答案
+
+```rs
+fn a -> type {
+ type
+}
+
+fn b -> type {
+ type
+}
+
+fn lemma -> ((eq type) a) b {
+ (refl type) a
+}
+
+fn theorem(p: ((eq type) a) b) -> ((eq type) b) a {
+ (((sym type) a) b) lemma
+}
+```
+
+
[Lyzh]: https://github.com/imlyzh
diff --git a/lyzh/abstract/rename.py b/lyzh/abstract/rename.py
index 9605d05..04cc377 100644
--- a/lyzh/abstract/rename.py
+++ b/lyzh/abstract/rename.py
@@ -1,7 +1,12 @@
"""数值内部引用刷新器, 这是因为, 我们使用了 capture-avoiding substitution 的技术,
所有的定义检查完毕类型之后, 它就像一个 "模板" 存在于 global context 当中, 如果后续有其他定义引用,
则我们应该把这个 "模板" 生成出来的数值内部的所有 ID 重新刷新, 不然的话, 引用会指向 "模板" 中去,
-造成严重错误 (比如程序陷入死循环)."""
+造成严重错误 (比如程序陷入死循环).
+
+举个死循环的例子, 假如我们不去做 rename, 则有这样一个函数:
+
+TODO
+"""
import dataclasses
import typing