Library Coq.nsatz.Nsatz

Require Import List.
Require Import Setoid.
Require Import BinPos.
Require Import BinList.
Require Import Znumtheory.
Require Export Morphisms Setoid Bool.
Require Export Algebra_syntax.
Require Export Ncring.
Require Export Ncring_initial.
Require Export Ncring_tac.
Require Export Integral_domain.
Require Import DiscrR.
Require Import ZArith.
Require Import Lia.

Require Export NsatzTactic.
Make use of discrR in nsatz
Ltac nsatz_internal_discrR ::= discrR.

Require Export Rbase.
Require Export Rfunctions.
Require Import RealField.

Lemma Rsth : Setoid_Theory R (@eq R).

Instance Rops: (@Ring_ops R 0%R 1%R Rplus Rmult Rminus Ropp (@eq R)).

Instance Rri : (Ring (Ro:=Rops)).

Ltac extra_reify term ::=
  match term with
  | IZR ?z =>
      match isZcst z with
      | true => open_constr:((true, PEc z))
      | false => open_constr:((false,tt))
  | _ => open_constr:((false,tt))

Lemma R_one_zero: 1%R <> 0%R.

Instance Rcri: (Cring (Rr:=Rri)).

Instance Rdi : (Integral_domain (Rcr:=Rcri)).