Coq defines the multiplicative inverse function 1/x
as a total function R -> R
, both in Rdefinitions.v and in Field_theory.v. The value 1/0
is left undefined, all calculation axioms ignore it.
However this is a problem in constructive mathematics, because all total functions R -> R
must be continuous. And we cannot connect the positive and negative infinities at zero. Therefore the constructive inverse is rather a partial function :
Finv : forall x : R, (0 < x \/ x < 0) -> R
This is for example how it is defined in the C-CoRN library.
Now is there a way to use the field
tactic with those partial inverse functions ? A direct Add Field
does not work.
The answer is no. The Add Field
command relies on a function of type R -> R
that represents the inverse and such a function cannot be defined constructively.