proposition: Lemma completeness_criterion `{ExtMetricSpaceClass X, !Limit X} : CompleteMetricSpaceClass X <-> forall f : RegularFunction X, tends_to f (lim f).
proof: Proof. split; intro A. + intros f e2 A2. apply mspc_symm, mspc_closed. intros e1 A1. change (lim f) with (reg_unit (lim f) e1). rewrite plus_comm. rapply (surjective reg_unit (A := X) (inv := lim)); trivial; reflexivity. + constructor; [| apply _]. apply ext_equiv_r; [apply _|]. intros f e1 e2 e1_pos e2_pos. apply (mspc_monotone e2); [apply nonneg_plus_le_compat_l; solve_propholds |]. now apply mspc_symm, A. Qed.
imports: CoRN.algebra.RSetoid CoRN.metric2.Metric CoRN.metric2.UniformContinuity Coq.QArith.QArith MathClasses.theory.setoids MathClasses.theory.products MathClasses.implementations.stdlib_rationals MathClasses.interfaces.abstract_algebra MathClasses.implementations.QType_rationals MathClasses.interfaces.additional_operations CoRN.tactics.Qauto Coq.QArith.QOrderedType MathClasses.theory.rings MathClasses.theory.dec_fields MathClasses.orders.rings MathClasses.orders.dec_fields MathClasses.theory.nat_pow MathClasses.interfaces.naturals MathClasses.interfaces.orders CoRN.reals.fast.CRGeometricSum