具有部分反函数的场策略
Field tactic with partial inverse function
Coq 在 Rdefinitions.v 和 Field_theory.v 中将乘法反函数 1/x
定义为总函数 R -> R
。值1/0
未定义,所有计算公理忽略它。
然而这是构造数学中的一个问题,因为所有的总函数R -> R
必须是连续的。而且我们不能在零处连接正无穷大和负无穷大。因此,建设性逆是一个偏函数:
Finv : forall x : R, (0 < x \/ x < 0) -> R
这就是 C-CoRN 库中的定义方式。
现在有没有办法对这些偏反函数使用 field
策略?直接 Add Field
行不通。
答案是否定的。 Add Field
命令依赖于类型为 R -> R
的函数,该函数表示反函数,并且无法构造性地定义此类函数。
Coq 在 Rdefinitions.v 和 Field_theory.v 中将乘法反函数 1/x
定义为总函数 R -> R
。值1/0
未定义,所有计算公理忽略它。
然而这是构造数学中的一个问题,因为所有的总函数R -> R
必须是连续的。而且我们不能在零处连接正无穷大和负无穷大。因此,建设性逆是一个偏函数:
Finv : forall x : R, (0 < x \/ x < 0) -> R
这就是 C-CoRN 库中的定义方式。
现在有没有办法对这些偏反函数使用 field
策略?直接 Add Field
行不通。
答案是否定的。 Add Field
命令依赖于类型为 R -> R
的函数,该函数表示反函数,并且无法构造性地定义此类函数。