Coq Real Numbers



Warning: The Coq real numbers depend on classical logic. Importing this module will give you classical logic, the axioms of Coq's real number structure, plus all the logical consquences of these axioms. To avoid these consequences, use CoRN's real number structure IR instead.

Here we show that the real numbers from the Coq standard library form a real number structure. This is done in the usual way by building up the algebraic heirarchy.

Coq real numbers form a setoid


Lemma R_is_CSetoid: is_CSetoid R (@eq R) (fun x y : R => x <> y).

Definition RCSetoid : CSetoid := Build_CSetoid R (@eq R) (fun x y => x <> y) R_is_CSetoid.
Canonical Structure RCSetoid.
Canonical Structure RSetoid := cs_crr RCSetoid.

Coq real numbers form a semigroup


addition

Coq real numbers form a monoid


Lemma R_is_CMonoid : is_CMonoid RSemiGroup (0%R).

Definition RMonoid : CMonoid := Build_CMonoid _ _ R_is_CMonoid.
Canonical Structure RMonoid.

Coq real numbers form a group


negation

Lemma RNeg_sunop : fun_strext (S1:=RCSetoid) (S2:=RCSetoid) Ropp.

Definition RNeg_op : CSetoid_un_op RMonoid := Build_CSetoid_un_op RCSetoid Ropp RNeg_sunop.

Lemma R_is_Group : is_CGroup RMonoid RNeg_op.

Definition RGroup := Build_CGroup _ _ R_is_Group.
Canonical Structure RGroup.

Coq real numbers form an abelian group


Lemma R_is_AbGroup : is_CAbGroup RGroup.

Definition RAbGroup := Build_CAbGroup _ R_is_AbGroup.
Canonical Structure RAbGroup.

Coq real numbers form a ring


multiplication

Coq real numbers form a field


reciprocal

Definition Rrecip : forall x : RRing, x [#] 0 -> RRing := fun x _ => Rinv x.

Lemma R_is_Field : is_CField RRing Rrecip.

Lemma R_is_Field2: forall (x y : RRing) (x_ : x[#]0) (y_ : y[#]0),
   Rrecip x x_[#]Rrecip y y_ -> x[#]y.

Definition RField : CField := Build_CField _ _ R_is_Field R_is_Field2.
Canonical Structure RField.

Coq real numbers form an ordered field


less-than
greater-than

Coq real numbers form a real number structure


Lemma cauchy_prop_cauchy_crit : (CauchySeq ROrdField) ->
  forall s : (N -> ROrdField), (Cauchy_prop (R:=ROrdField) s) -> (Rseries.Cauchy_crit s).

limit

Definition RLim : CauchySeq ROrdField -> ROrdField.
Defined.

INR is isomorphic to nring

Lemma R_INR_as_IR : forall n : N, INR n = nring (R:=RRing) n.


Lemma RisReals : is_CReals ROrdField RLim.

Definition RReals : CReals := Build_CReals ROrdField RLim RisReals.
Canonical Structure RReals.