alias num (instance 0) = "natural number".
alias symbol "eq" (instance 0) = "leibnitz's equality".
alias symbol "plus" (instance 0) = "natural plus".
+
+(* with the unary [[ - ]] we point the term that the path refers to *)
theorem a:
\forall a,b:nat.
- a = b \to b + a = a + a.
+ a = b \to a + b = ((\lambda w.((\lambda x.x + b) a)) b).
intros.
+
+(* a + b = (\w.(\x. [[ x + b ]] ) a) b *)
+rewrite right H in \vdash (? ? ? ((\lambda x.%) ?)).
+
+(* [[ a + b ]] = (\w.(\x.x + a) a) b *)
rewrite right H in \vdash (? ? % ?).
+
+(* a + a = (\w. [[ (\x.x + a) a ]] b *)
+simplify in \vdash (? ? ? ((\lambda x.%) ?)).
+
+(* a + a = (\w.a + a) [[ b ]] *)
+rewrite right H in \vdash (? ? ? (? %)).
+simplify.
reflexivity.
-qed.
\ No newline at end of file
+qed.