Ocaml 证明尾部递归函数(计算整数的幂)

Ocaml 证明尾部递归函数(计算整数的幂),ocaml,tail-recursion,proof,Ocaml,Tail Recursion,Proof,下面是一个我想证明其核心性的函数(用OCaml编写): 其规格: For integers ak, a>0, k>=0 pow returns ak*(a^k). 我知道我需要证明两件事——函数终止,并返回假定输入的正确结果。问题是我没有见过很多这样的证明,我只知道我需要使用归纳法。我应该如何处理这样的问题?证明基本情况。然后证明,对于a+1和k+1来说,假设该语句适用于a和k,换句话说,递归与归纳证明完全相同。如何同时对两个变量使用归纳?与对一个变量使用相同的方法,没有什么特别之

下面是一个我想证明其核心性的函数(用OCaml编写):

其规格:

For integers ak, a>0, k>=0 pow returns ak*(a^k).

我知道我需要证明两件事——函数终止,并返回假定输入的正确结果。问题是我没有见过很多这样的证明,我只知道我需要使用归纳法。我应该如何处理这样的问题?

证明基本情况。然后证明,对于
a+1
k+1
来说,假设该语句适用于
a
k
,换句话说,递归与归纳证明完全相同。如何同时对两个变量使用归纳?与对一个变量使用相同的方法,没有什么特别之处
For integers ak, a>0, k>=0 pow returns ak*(a^k).