Coq.Reals.Raxioms

# Module Coq.Reals.Raxioms

``

Axiomatisation of the classical reals

`
`Require` `Export` ZArith.
`Require` `Export` Rsyntax.
`Require` `Export` TypeSyntax.

`

Addition

`
`Axiom` Rplus_sym:(r1,r2:R)``r1+r2==r2+r1``.
`Hints` Resolve Rplus_sym : real.

`Axiom` Rplus_assoc:(r1,r2,r3:R)``(r1+r2)+r3==r1+(r2+r3)``.
`Hints` Resolve Rplus_assoc : real.

`Axiom` Rplus_Ropp_r:(r:R)``r+(-r)==0``.
`Hints` Resolve Rplus_Ropp_r : real v62.

`Axiom` Rplus_Ol:(r:R)``0+r==r``.
`Hints` Resolve Rplus_Ol : real.

`

Multiplication

`
`Axiom` Rmult_sym:(r1,r2:R)``r1*r2==r2*r1``.
`Hints` Resolve Rmult_sym : real v62.

`Axiom` Rmult_assoc:(r1,r2,r3:R)``(r1*r2)*r3==r1*(r2*r3)``.
`Hints` Resolve Rmult_assoc : real v62.

`Axiom` Rinv_l:(r:R)``r<>0``->``(/r)*r==1``.
`Hints` Resolve Rinv_l : real.

`Axiom` Rmult_1l:(r:R)``1*r==r``.
`Hints` Resolve Rmult_1l : real.

`Axiom` R1_neq_R0:``1<>0``.
`Hints` Resolve R1_neq_R0 : real.

`

Distributivity

`
`Axiom` Rmult_Rplus_distr:(r1,r2,r3:R)``r1*(r2+r3)==(r1*r2)+(r1*r3)``.
`Hints` Resolve Rmult_Rplus_distr : real v62.

`

Order axioms

`
`

Total Order

`
`Axiom` total_order_T:(r1,r2:R)(sumorT (sumboolT ``r1<r2`` r1==r2) ``r1>r2``).

`

Lower

`
`Axiom` Rlt_antisym:(r1,r2:R)``r1<r2`` -> ~ ``r2<r1``.

`Axiom` Rlt_trans:(r1,r2,r3:R)
``r1<r2``->``r2<r3``->``r1<r3``.

`Axiom` Rlt_compatibility:(r,r1,r2:R)``r1<r2``->``r+r1<r+r2``.

`Axiom` Rlt_monotony:(r,r1,r2:R)``0<r``->``r1<r2``->``r*r1<r*r2``.

`Hints` Resolve Rlt_antisym Rlt_compatibility Rlt_monotony : real.

`

Injection from N to R

`
`Fixpoint` INR [n:nat]:R:=(Cases n of
O => ``0``
|(S O) => ``1``
|(S n) => ``(INR n)+1``
end).

`

Injection from `Z` to `R`

`
`Definition` IZR:Z->R:=[z:Z](Cases z of
ZERO => ``0``
|(POS n) => (INR (convert n))
|(NEG n) => ``-(INR (convert n))``
end).

`

`R` Archimedian

`
`Axiom` archimed:(r:R)``(IZR (up r)) > r``/\``(IZR (up r))-r <= 1``.

`

`R` Complete

`
`Definition` is_upper_bound:=[E:R->Prop][m:R](x:R)(E x)->``x <= m``.

`Definition` bound:=[E:R->Prop](ExT [m:R](is_upper_bound E m)).

`Definition` is_lub:=[E:R->Prop][m:R]
(is_upper_bound E m)/\(b:R)(is_upper_bound E b)->``m <= b``.

`Axiom` complet:(E:R->Prop)(bound E)->
(ExT [x:R] (E x))->
(ExT [m:R](is_lub E m)).

`

Index