From 748d716efb2f2f75946c8386e441ce1789806a39 Mon Sep 17 00:00:00 2001 From: Enrico Tassi Date: Wed, 22 May 2019 13:43:08 +0200 Subject: htmldoc regenerated --- docs/htmldoc/mathcomp.field.algC.html | 478 +++++++++++++++++----------------- 1 file changed, 244 insertions(+), 234 deletions(-) (limited to 'docs/htmldoc/mathcomp.field.algC.html') diff --git a/docs/htmldoc/mathcomp.field.algC.html b/docs/htmldoc/mathcomp.field.algC.html index 4449509..5ab5e5d 100644 --- a/docs/htmldoc/mathcomp.field.algC.html +++ b/docs/htmldoc/mathcomp.field.algC.html @@ -21,7 +21,6 @@
(* (c) Copyright 2006-2016 Microsoft Corporation and Inria.                  
 Distributed under the terms of CeCILL-B.                                  *)

-Require Import mathcomp.ssreflect.ssreflect.

@@ -85,9 +84,9 @@ order 2, making it into a field of complex numbers.
-Lemma ComplexNumMixin (L : closedFieldType) (conj : {rmorphism L L}) :
-    involutive conj ¬ conj =1 id
-  {numL | x : NumDomainType L numL, `|x| ^+ 2 = x × conj x}.
+Lemma ComplexNumMixin (L : closedFieldType) (conj : {rmorphism L L}) :
+    involutive conj ¬ conj =1 id
+  {numL | x : NumDomainType L numL, `|x| ^+ 2 = x × conj x}.

Module Algebraics.
@@ -113,21 +112,21 @@
Parameter zmodMixin : GRing.Zmodule.mixin_of type.
Canonical zmodType := ZmodType type zmodMixin.
-Canonical countZmodType := [countZmodType of type].
+Canonical countZmodType := [countZmodType of type].

Parameter ringMixin : GRing.Ring.mixin_of zmodType.
Canonical ringType := RingType type ringMixin.
-Canonical countRingType := [countRingType of type].
+Canonical countRingType := [countRingType of type].

Parameter unitRingMixin : GRing.UnitRing.mixin_of ringType.
Canonical unitRingType := UnitRingType type unitRingMixin.

-Axiom mulC : @commutative ringType ringType *%R.
+Axiom mulC : @commutative ringType ringType *%R.
Canonical comRingType := ComRingType type mulC.
-Canonical comUnitRingType := [comUnitRingType of type].
+Canonical comUnitRingType := [comUnitRingType of type].

Axiom idomainAxiom : GRing.IntegralDomain.axiom ringType.
@@ -148,7 +147,7 @@
Parameter numMixin : Num.mixin_of ringType.
Canonical numDomainType := NumDomainType type numMixin.
-Canonical numFieldType := [numFieldType of type].
+Canonical numFieldType := [numFieldType of type].

Parameter conjMixin : Num.ClosedField.imaginary_mixin_of numDomainType.
@@ -164,36 +163,36 @@ Module Implementation : Specification.

-Definition L := tag Fundamental_Theorem_of_Algebraics.
+Definition L := tag Fundamental_Theorem_of_Algebraics.

-Definition conjL : {rmorphism L L} :=
-  s2val (tagged Fundamental_Theorem_of_Algebraics).
+Definition conjL : {rmorphism L L} :=
+  s2val (tagged Fundamental_Theorem_of_Algebraics).

-Fact conjL_K : involutive conjL.
+Fact conjL_K : involutive conjL.

-Fact conjL_nt : ¬ conjL =1 id.
+Fact conjL_nt : ¬ conjL =1 id.

Definition LnumMixin := ComplexNumMixin conjL_K conjL_nt.
Definition Lnum := NumDomainType L (sval LnumMixin).

-Definition QtoL := [rmorphism of @ratr [numFieldType of Lnum]].
+Definition QtoL := [rmorphism of @ratr [numFieldType of Lnum]].
Notation pQtoL := (map_poly QtoL).

Definition rootQtoL p_j :=
-  if p_j.1 == 0 then 0 else
-  (sval (closed_field_poly_normal (pQtoL p_j.1)))`_p_j.2.
+  if p_j.1 == 0 then 0 else
+  (sval (closed_field_poly_normal (pQtoL p_j.1)))`_p_j.2.

-Definition eq_root p_j q_k := rootQtoL p_j == rootQtoL q_k.
+Definition eq_root p_j q_k := rootQtoL p_j == rootQtoL q_k.
Fact eq_root_is_equiv : equiv_class_of eq_root.
Canonical eq_root_equiv := EquivRelPack eq_root_is_equiv.
-Definition type : Type := {eq_quot eq_root}%qT.
+Definition type : Type := {eq_quot eq_root}%qT.

Definition eqMixin : Equality.class_of type := EquivQuot.eqMixin _.
@@ -204,27 +203,27 @@ Canonical choiceType := ChoiceType type choiceMixin.

-Definition countMixin : Countable.mixin_of type := CanCountMixin (@reprK _ _).
+Definition countMixin : Countable.mixin_of type := CanCountMixin reprK.
Canonical countType := CountType type countMixin.

Definition CtoL (u : type) := rootQtoL (repr u).

-Fact CtoL_inj : injective CtoL.
+Fact CtoL_inj : injective CtoL.

Fact CtoL_P u : integralOver QtoL (CtoL u).

-Fact LtoC_subproof z : integralOver QtoL z {u | CtoL u = z}.
+Fact LtoC_subproof z : integralOver QtoL z {u | CtoL u = z}.

Definition LtoC z Az := sval (@LtoC_subproof z Az).
-Fact LtoC_K z Az : CtoL (@LtoC z Az) = z.
+Fact LtoC_K z Az : CtoL (@LtoC z Az) = z.

-Fact CtoL_K u : LtoC (CtoL_P u) = u.
+Fact CtoL_K u : LtoC (CtoL_P u) = u.

Definition zero := LtoC (integral0 _).
@@ -232,21 +231,21 @@ Definition opp u := LtoC (integral_opp (CtoL_P u)).

-Fact addA : associative add.
+Fact addA : associative add.

-Fact addC : commutative add.
+Fact addC : commutative add.

-Fact add0 : left_id zero add.
+Fact add0 : left_id zero add.

-Fact addN : left_inverse zero opp add.
+Fact addN : left_inverse zero opp add.

Definition zmodMixin := ZmodMixin addA addC add0 addN.
Canonical zmodType := ZmodType type zmodMixin.
-Canonical countZmodType := [countZmodType of type].
+Canonical countZmodType := [countZmodType of type].

Fact CtoL_is_additive : additive CtoL.
@@ -258,25 +257,25 @@ Definition inv u := LtoC (integral_inv (CtoL_P u)).

-Fact mulA : associative mul.
+Fact mulA : associative mul.

-Fact mulC : commutative mul.
+Fact mulC : commutative mul.

-Fact mul1 : left_id one mul.
+Fact mul1 : left_id one mul.

-Fact mulD : left_distributive mul +%R.
+Fact mulD : left_distributive mul +%R.

-Fact one_nz : one != 0 :> type.
+Fact one_nz : one != 0 :> type.

Definition ringMixin := ComRingMixin mulA mulC mul1 mulD one_nz.
Canonical ringType := RingType type ringMixin.
Canonical comRingType := ComRingType type mulC.
-Canonical countRingType := [countRingType of type].
+Canonical countRingType := [countRingType of type].

Fact CtoL_is_multiplicative : multiplicative CtoL.
@@ -284,15 +283,15 @@
Fact mulVf : GRing.Field.axiom inv.
-Fact inv0 : inv 0 = 0.
+Fact inv0 : inv 0 = 0.

Definition unitRingMixin := FieldUnitMixin mulVf inv0.
Canonical unitRingType := UnitRingType type unitRingMixin.
-Canonical comUnitRingType := [comUnitRingType of type].
+Canonical comUnitRingType := [comUnitRingType of type].

-Definition fieldMixin := @FieldMixin _ _ mulVf inv0.
+Definition fieldMixin := FieldMixin mulVf inv0.
Definition idomainAxiom := FieldIdomainMixin fieldMixin.
Canonical idomainType := IdomainType type idomainAxiom.
Canonical fieldType := FieldType type fieldMixin.
@@ -301,26 +300,26 @@ Fact closedFieldAxiom : GRing.ClosedField.axiom ringType.

-Definition decFieldMixin := closed_field.closed_fields_QEMixin closedFieldAxiom.
+Definition decFieldMixin := closed_field_QEMixin closedFieldAxiom.
Canonical decFieldType := DecFieldType type decFieldMixin.
Canonical closedFieldType := ClosedFieldType type closedFieldAxiom.

Fact conj_subproof u : integralOver QtoL (conjL (CtoL u)).
Fact conj_is_rmorphism : rmorphism (fun uLtoC (conj_subproof u)).
-Definition conj : {rmorphism type type} := RMorphism conj_is_rmorphism.
-Lemma conjK : involutive conj.
+Definition conj : {rmorphism type type} := RMorphism conj_is_rmorphism.
+Lemma conjK : involutive conj.

-Fact conj_nt : ¬ conj =1 id.
+Fact conj_nt : ¬ conj =1 id.

Definition numMixin := sval (ComplexNumMixin conjK conj_nt).
Canonical numDomainType := NumDomainType type numMixin.
-Canonical numFieldType := [numFieldType of type].
+Canonical numFieldType := [numFieldType of type].

-Lemma normK u : `|u| ^+ 2 = u × conj u.
+Lemma normK u : `|u| ^+ 2 = u × conj u.

Lemma algebraic : integralRange (@ratr unitRingType).
@@ -328,7 +327,7 @@
Definition conjMixin :=
  ImaginaryMixin (svalP (imaginary_exists closedFieldType))
-                 (fun xesym (normK x)).
+                 (fun xesym (normK x)).
Canonical numClosedFieldType := NumClosedFieldType type conjMixin.

@@ -346,25 +345,25 @@

-Fact algCi_subproof : {i : algC | i ^+ 2 = -1}.
+Fact algCi_subproof : {i : algC | i ^+ 2 = -1}.

-CoInductive getCrat_spec : Type := GetCrat_spec CtoQ of cancel QtoC CtoQ.
+Variant getCrat_spec : Type := GetCrat_spec CtoQ of cancel QtoC CtoQ.

Fact getCrat_subproof : getCrat_spec.

-Fact floorC_subproof x : {m | x \is Creal ZtoC m x < ZtoC (m + 1)}.
+Fact floorC_subproof x : {m | x \is Creal ZtoC m x < ZtoC (m + 1)}.

Fact minCpoly_subproof (x : algC) :
-  {p | p \is monic & q, root (pQtoC q) x = (p %| q)%R}.
+  {p | p \is monic & q, root (pQtoC q) x = (p %| q)%R}.

-Definition algC_divisor (x : algC) := x : divisor.
-Definition int_divisor m := m%:~R : divisor.
-Definition nat_divisor n := n%:R : divisor.
+Definition algC_divisor (x : algC) := x : divisor.
+Definition int_divisor m := m%:~R : divisor.
+Definition nat_divisor n := n%:R : divisor.

End Internals.
@@ -416,19 +415,19 @@
Definition getCrat := let: GetCrat_spec CtoQ _ := getCrat_subproof in CtoQ.
-Definition Crat : pred_class := fun x : algCratr (getCrat x) == x.
+Definition Crat : {pred algC} := fun xratr (getCrat x) == x.

Definition floorC x := sval (floorC_subproof x).
-Definition Cint : pred_class := fun x : algC(floorC x)%:~R == x.
+Definition Cint : {pred algC} := fun x(floorC x)%:~R == x.

-Definition truncC x := if x 0 then `|floorC x|%N else 0%N.
-Definition Cnat : pred_class := fun x : algC(truncC x)%:R == x.
+Definition truncC x := if x 0 then `|floorC x|%N else 0%N.
+Definition Cnat : {pred algC} := fun x(truncC x)%:R == x.

-Definition minCpoly x : {poly algC} :=
-  let: exist2 p _ _ := minCpoly_subproof x in map_poly ratr p.
+Definition minCpoly x : {poly algC} :=
+  let: exist2 p _ _ := minCpoly_subproof x in map_poly ratr p.

Coercion nat_divisor : nat >-> divisor.
@@ -436,22 +435,22 @@ Coercion algC_divisor : algC >-> divisor.

-Lemma nCdivE (p : nat) : p = p%:R :> divisor.
-Lemma zCdivE (p : int) : p = p%:~R :> divisor.
-Definition CdivE := (nCdivE, zCdivE).
+Lemma nCdivE (p : nat) : p = p%:R :> divisor.
+Lemma zCdivE (p : int) : p = p%:~R :> divisor.
+Definition CdivE := (nCdivE, zCdivE).

-Definition dvdC (x : divisor) : pred_class :=
-   fun y : algCif x == 0 then y == 0 else y / x \in Cint.
-Notation "x %| y" := (y \in dvdC x) : C_expanded_scope.
-Notation "x %| y" := (@in_mem divisor y (mem (dvdC x))) : C_scope.
+Definition dvdC (x : divisor) : {pred algC} :=
+   fun yif x == 0 then y == 0 else y / x \in Cint.
+Notation "x %| y" := (y \in dvdC x) : C_expanded_scope.
+Notation "x %| y" := (@in_mem divisor y (mem (dvdC x))) : C_scope.

-Definition eqCmod (e x y : divisor) := (e %| x - y)%C.
+Definition eqCmod (e x y : divisor) := (e %| x - y)%C.

-Notation "x == y %[mod e ]" := (eqCmod e x y) : C_scope.
-Notation "x != y %[mod e ]" := (~~ (x == y %[mod e])%C) : C_scope.
+Notation "x == y %[mod e ]" := (eqCmod e x y) : C_scope.
+Notation "x != y %[mod e ]" := (~~ (x == y %[mod e])%C) : C_scope.

End Exports.
@@ -466,11 +465,13 @@ Section AlgebraicsTheory.

-Implicit Types (x y z : algC) (n : nat) (m : int) (b : bool).
+Implicit Types (x y z : algC) (n : nat) (m : int) (b : bool).
Import Algebraics.Internals.

-Local Hint Resolve (@intr_inj _ : injective ZtoC).
+ +
+Local Hint Resolve (intr_inj : injective ZtoC) : core.

@@ -481,10 +482,10 @@

-Definition eqC_nat n p : (n%:R == p%:R :> algC) = (n == p) := eqr_nat _ n p.
-Definition leC_nat n p : (n%:R p%:R :> algC) = (n p)%N := ler_nat _ n p.
-Definition ltC_nat n p : (n%:R < p%:R :> algC) = (n < p)%N := ltr_nat _ n p.
-Definition Cchar : [char algC] =i pred0 := @char_num _.
+Definition eqC_nat n p : (n%:R == p%:R :> algC) = (n == p) := eqr_nat _ n p.
+Definition leC_nat n p : (n%:R p%:R :> algC) = (n p)%N := ler_nat _ n p.
+Definition ltC_nat n p : (n%:R < p%:R :> algC) = (n < p)%N := ltr_nat _ n p.
+Definition Cchar : [char algC] =i pred0 := @char_num _.

@@ -498,22 +499,22 @@ Definition CratrE :=
  let CnF := Algebraics.Implementation.numFieldType in
  let QtoCm := ratr_rmorphism CnF in
-  ((rmorph0 QtoCm, rmorph1 QtoCm, rmorphMn QtoCm, rmorphN QtoCm, rmorphD QtoCm),
-   (rmorphM QtoCm, rmorphX QtoCm, fmorphV QtoCm),
-   (rmorphMz QtoCm, rmorphXz QtoCm, @ratr_norm CnF, @ratr_sg CnF),
-   =^~ (@ler_rat CnF, @ltr_rat CnF, (inj_eq (fmorph_inj QtoCm)))).
+  ((rmorph0 QtoCm, rmorph1 QtoCm, rmorphMn QtoCm, rmorphN QtoCm, rmorphD QtoCm),
+   (rmorphM QtoCm, rmorphX QtoCm, fmorphV QtoCm),
+   (rmorphMz QtoCm, rmorphXz QtoCm, @ratr_norm CnF, @ratr_sg CnF),
+   =^~ (@ler_rat CnF, @ltr_rat CnF, (inj_eq (fmorph_inj QtoCm)))).

Definition CintrE :=
  let CnF := Algebraics.Implementation.numFieldType in
  let ZtoCm := intmul1_rmorphism CnF in
-  ((rmorph0 ZtoCm, rmorph1 ZtoCm, rmorphMn ZtoCm, rmorphN ZtoCm, rmorphD ZtoCm),
-   (rmorphM ZtoCm, rmorphX ZtoCm),
-   (rmorphMz ZtoCm, @intr_norm CnF, @intr_sg CnF),
-   =^~ (@ler_int CnF, @ltr_int CnF, (inj_eq (@intr_inj CnF)))).
+  ((rmorph0 ZtoCm, rmorph1 ZtoCm, rmorphMn ZtoCm, rmorphN ZtoCm, rmorphD ZtoCm),
+   (rmorphM ZtoCm, rmorphX ZtoCm),
+   (rmorphMz ZtoCm, @intr_norm CnF, @intr_sg CnF),
+   =^~ (@ler_int CnF, @ltr_int CnF, (inj_eq (@intr_inj CnF)))).

-Let nz2 : 2%:R != 0 :> algC.
+Let nz2 : 2%:R != 0 :> algC.

@@ -535,19 +536,25 @@

-Lemma Creal0 : 0 \is Creal.
-Lemma Creal1 : 1 \is Creal.
-Hint Resolve Creal0 Creal1. (* Trivial cannot resolve a general real0 hint. *)
+Lemma Creal0 : 0 \is Creal.
+Lemma Creal1 : 1 \is Creal.
+
+ +
+ Trivial cannot resolve a general real0 hint. +
+
+Hint Resolve Creal0 Creal1 : core.

-Lemma algCrect x : x = 'Re x + 'i × 'Im x.
+Lemma algCrect x : x = 'Re x + 'i × 'Im x.

-Lemma algCreal_Re x : 'Re x \is Creal.
+Lemma algCreal_Re x : 'Re x \is Creal.

-Lemma algCreal_Im x : 'Im x \is Creal.
- Hint Resolve algCreal_Re algCreal_Im.
+Lemma algCreal_Im x : 'Im x \is Creal.
+ Hint Resolve algCreal_Re algCreal_Im : core.

@@ -559,61 +566,62 @@

-Lemma floorC_itv x : x \is Creal (floorC x)%:~R x < (floorC x + 1)%:~R.
+Lemma floorC_itv x : x \is Creal (floorC x)%:~R x < (floorC x + 1)%:~R.

-Lemma floorC_def x m : m%:~R x < (m + 1)%:~R floorC x = m.
+Lemma floorC_def x m : m%:~R x < (m + 1)%:~R floorC x = m.

-Lemma intCK : cancel intr floorC.
+Lemma intCK : cancel intr floorC.

-Lemma floorCK : {in Cint, cancel floorC intr}.
+Lemma floorCK : {in Cint, cancel floorC intr}.

-Lemma floorC0 : floorC 0 = 0.
-Lemma floorC1 : floorC 1 = 1.
-Hint Resolve floorC0 floorC1.
+Lemma floorC0 : floorC 0 = 0.
+Lemma floorC1 : floorC 1 = 1.
+Hint Resolve floorC0 floorC1 : core.

-Lemma floorCpK (p : {poly algC}) :
-  p \is a polyOver Cint map_poly intr (map_poly floorC p) = p.
+Lemma floorCpK (p : {poly algC}) :
+  p \is a polyOver Cint map_poly intr (map_poly floorC p) = p.

-Lemma floorCpP (p : {poly algC}) :
-  p \is a polyOver Cint {q | p = map_poly intr q}.
+Lemma floorCpP (p : {poly algC}) :
+  p \is a polyOver Cint {q | p = map_poly intr q}.

-Lemma Cint_int m : m%:~R \in Cint.
+Lemma Cint_int m : m%:~R \in Cint.

-Lemma CintP x : reflect ( m, x = m%:~R) (x \in Cint).
+Lemma CintP x : reflect ( m, x = m%:~R) (x \in Cint).

-Lemma floorCD : {in Cint & Creal, {morph floorC : x y / x + y}}.
+Lemma floorCD : {in Cint & Creal, {morph floorC : x y / x + y}}.

-Lemma floorCN : {in Cint, {morph floorC : x / - x}}.
+Lemma floorCN : {in Cint, {morph floorC : x / - x}}.

-Lemma floorCM : {in Cint &, {morph floorC : x y / x × y}}.
+Lemma floorCM : {in Cint &, {morph floorC : x y / x × y}}.

-Lemma floorCX n : {in Cint, {morph floorC : x / x ^+ n}}.
+Lemma floorCX n : {in Cint, {morph floorC : x / x ^+ n}}.

-Lemma rpred_Cint S (ringS : subringPred S) (kS : keyed_pred ringS) x :
-  x \in Cint x \in kS.
+Lemma rpred_Cint
+        (S : {pred algC}) (ringS : subringPred S) (kS : keyed_pred ringS) x :
+  x \in Cint x \in kS.

-Lemma Cint0 : 0 \in Cint.
-Lemma Cint1 : 1 \in Cint.
-Hint Resolve Cint0 Cint1.
+Lemma Cint0 : 0 \in Cint.
+Lemma Cint1 : 1 \in Cint.
+Hint Resolve Cint0 Cint1 : core.

-Fact Cint_key : pred_key Cint.
+Fact Cint_key : pred_key Cint.
Fact Cint_subring : subring_closed Cint.
-Canonical Cint_keyed := KeyedPred Cint_key.
+Canonical Cint_keyed := KeyedPred Cint_key.
Canonical Cint_opprPred := OpprPred Cint_subring.
Canonical Cint_addrPred := AddrPred Cint_subring.
Canonical Cint_mulrPred := MulrPred Cint_subring.
@@ -623,16 +631,16 @@ Canonical Cint_subringPred := SubringPred Cint_subring.

-Lemma Creal_Cint : {subset Cint Creal}.
+Lemma Creal_Cint : {subset Cint Creal}.

-Lemma conj_Cint x : x \in Cint x^* = x.
+Lemma conj_Cint x : x \in Cint x^* = x.

-Lemma Cint_normK x : x \in Cint `|x| ^+ 2 = x ^+ 2.
+Lemma Cint_normK x : x \in Cint `|x| ^+ 2 = x ^+ 2.

-Lemma CintEsign x : x \in Cint x = (-1) ^+ (x < 0)%C × `|x|.
+Lemma CintEsign x : x \in Cint x = (-1) ^+ (x < 0)%C × `|x|.

@@ -643,86 +651,87 @@

-Lemma truncC_itv x : 0 x (truncC x)%:R x < (truncC x).+1%:R.
+Lemma truncC_itv x : 0 x (truncC x)%:R x < (truncC x).+1%:R.

-Lemma truncC_def x n : n%:R x < n.+1%:R truncC x = n.
+Lemma truncC_def x n : n%:R x < n.+1%:R truncC x = n.

-Lemma natCK n : truncC n%:R = n.
+Lemma natCK n : truncC n%:R = n.

-Lemma CnatP x : reflect ( n, x = n%:R) (x \in Cnat).
+Lemma CnatP x : reflect ( n, x = n%:R) (x \in Cnat).

-Lemma truncCK : {in Cnat, cancel truncC (GRing.natmul 1)}.
+Lemma truncCK : {in Cnat, cancel truncC (GRing.natmul 1)}.

-Lemma truncC_gt0 x : (0 < truncC x)%N = (1 x).
+Lemma truncC_gt0 x : (0 < truncC x)%N = (1 x).

-Lemma truncC0Pn x : reflect (truncC x = 0%N) (~~ (1 x)).
+Lemma truncC0Pn x : reflect (truncC x = 0%N) (~~ (1 x)).

-Lemma truncC0 : truncC 0 = 0%N.
-Lemma truncC1 : truncC 1 = 1%N.
+Lemma truncC0 : truncC 0 = 0%N.
+Lemma truncC1 : truncC 1 = 1%N.

Lemma truncCD :
-  {in Cnat & Num.nneg, {morph truncC : x y / x + y >-> (x + y)%N}}.
+  {in Cnat & Num.nneg, {morph truncC : x y / x + y >-> (x + y)%N}}.

-Lemma truncCM : {in Cnat &, {morph truncC : x y / x × y >-> (x × y)%N}}.
+Lemma truncCM : {in Cnat &, {morph truncC : x y / x × y >-> (x × y)%N}}.

-Lemma truncCX n : {in Cnat, {morph truncC : x / x ^+ n >-> (x ^ n)%N}}.
+Lemma truncCX n : {in Cnat, {morph truncC : x / x ^+ n >-> (x ^ n)%N}}.

-Lemma rpred_Cnat S (ringS : semiringPred S) (kS : keyed_pred ringS) x :
-  x \in Cnat x \in kS.
+Lemma rpred_Cnat
+        (S : {pred algC}) (ringS : semiringPred S) (kS : keyed_pred ringS) x :
+  x \in Cnat x \in kS.

-Lemma Cnat_nat n : n%:R \in Cnat.
-Lemma Cnat0 : 0 \in Cnat.
-Lemma Cnat1 : 1 \in Cnat.
-Hint Resolve Cnat_nat Cnat0 Cnat1.
+Lemma Cnat_nat n : n%:R \in Cnat.
+Lemma Cnat0 : 0 \in Cnat.
+Lemma Cnat1 : 1 \in Cnat.
+Hint Resolve Cnat_nat Cnat0 Cnat1 : core.

-Fact Cnat_key : pred_key Cnat.
+Fact Cnat_key : pred_key Cnat.
Fact Cnat_semiring : semiring_closed Cnat.
-Canonical Cnat_keyed := KeyedPred Cnat_key.
+Canonical Cnat_keyed := KeyedPred Cnat_key.
Canonical Cnat_addrPred := AddrPred Cnat_semiring.
Canonical Cnat_mulrPred := MulrPred Cnat_semiring.
Canonical Cnat_semiringPred := SemiringPred Cnat_semiring.

-Lemma Cnat_ge0 x : x \in Cnat 0 x.
+Lemma Cnat_ge0 x : x \in Cnat 0 x.

-Lemma Cnat_gt0 x : x \in Cnat (0 < x) = (x != 0).
+Lemma Cnat_gt0 x : x \in Cnat (0 < x) = (x != 0).

-Lemma conj_Cnat x : x \in Cnat x^* = x.
+Lemma conj_Cnat x : x \in Cnat x^* = x.

-Lemma norm_Cnat x : x \in Cnat `|x| = x.
+Lemma norm_Cnat x : x \in Cnat `|x| = x.

-Lemma Creal_Cnat : {subset Cnat Creal}.
+Lemma Creal_Cnat : {subset Cnat Creal}.

-Lemma Cnat_sum_eq1 (I : finType) (P : pred I) (F : I algC) :
-     ( i, P i F i \in Cnat) \sum_(i | P i) F i = 1
-   {i : I | [/\ P i, F i = 1 & j, j != i P j F j = 0]}.
+Lemma Cnat_sum_eq1 (I : finType) (P : pred I) (F : I algC) :
+     ( i, P i F i \in Cnat) \sum_(i | P i) F i = 1
+   {i : I | [/\ P i, F i = 1 & j, j != i P j F j = 0]}.

Lemma Cnat_mul_eq1 x y :
-  x \in Cnat y \in Cnat (x × y == 1) = (x == 1) && (y == 1).
+  x \in Cnat y \in Cnat (x × y == 1) = (x == 1) && (y == 1).

-Lemma Cnat_prod_eq1 (I : finType) (P : pred I) (F : I algC) :
-    ( i, P i F i \in Cnat) \prod_(i | P i) F i = 1
-   i, P i F i = 1.
+Lemma Cnat_prod_eq1 (I : finType) (P : pred I) (F : I algC) :
+    ( i, P i F i \in Cnat) \prod_(i | P i) F i = 1
+   i, P i F i = 1.

@@ -733,31 +742,31 @@

-Lemma Cint_Cnat : {subset Cnat Cint}.
+Lemma Cint_Cnat : {subset Cnat Cint}.

-Lemma CintE x : (x \in Cint) = (x \in Cnat) || (- x \in Cnat).
+Lemma CintE x : (x \in Cint) = (x \in Cnat) || (- x \in Cnat).

-Lemma Cnat_norm_Cint x : x \in Cint `|x| \in Cnat.
+Lemma Cnat_norm_Cint x : x \in Cint `|x| \in Cnat.

-Lemma CnatEint x : (x \in Cnat) = (x \in Cint) && (0 x).
+Lemma CnatEint x : (x \in Cnat) = (x \in Cint) && (0 x).

-Lemma CintEge0 x : 0 x (x \in Cint) = (x \in Cnat).
+Lemma CintEge0 x : 0 x (x \in Cint) = (x \in Cnat).

-Lemma Cnat_exp_even x n : ~~ odd n x \in Cint x ^+ n \in Cnat.
+Lemma Cnat_exp_even x n : ~~ odd n x \in Cint x ^+ n \in Cnat.

-Lemma norm_Cint_ge1 x : x \in Cint x != 0 1 `|x|.
+Lemma norm_Cint_ge1 x : x \in Cint x != 0 1 `|x|.

-Lemma sqr_Cint_ge1 x : x \in Cint x != 0 1 x ^+ 2.
+Lemma sqr_Cint_ge1 x : x \in Cint x != 0 1 x ^+ 2.

-Lemma Cint_ler_sqr x : x \in Cint x x ^+ 2.
+Lemma Cint_ler_sqr x : x \in Cint x x ^+ 2.

@@ -768,49 +777,49 @@

-Lemma dvdCP x y : reflect (exists2 z, z \in Cint & y = z × x) (x %| y)%C.
+Lemma dvdCP x y : reflect (exists2 z, z \in Cint & y = z × x) (x %| y)%C.

-Lemma dvdCP_nat x y : 0 x 0 y (x %| y)%C {n | y = n%:R × x}.
+Lemma dvdCP_nat x y : 0 x 0 y (x %| y)%C {n | y = n%:R × x}.

-Lemma dvdC0 x : (x %| 0)%C.
+Lemma dvdC0 x : (x %| 0)%C.

-Lemma dvd0C x : (0 %| x)%C = (x == 0).
+Lemma dvd0C x : (0 %| x)%C = (x == 0).

-Lemma dvdC_mull x y z : y \in Cint (x %| z)%C (x %| y × z)%C.
+Lemma dvdC_mull x y z : y \in Cint (x %| z)%C (x %| y × z)%C.

-Lemma dvdC_mulr x y z : y \in Cint (x %| z)%C (x %| z × y)%C.
+Lemma dvdC_mulr x y z : y \in Cint (x %| z)%C (x %| z × y)%C.

-Lemma dvdC_mul2r x y z : y != 0 (x × y %| z × y)%C = (x %| z)%C.
+Lemma dvdC_mul2r x y z : y != 0 (x × y %| z × y)%C = (x %| z)%C.

-Lemma dvdC_mul2l x y z : y != 0 (y × x %| y × z)%C = (x %| z)%C.
+Lemma dvdC_mul2l x y z : y != 0 (y × x %| y × z)%C = (x %| z)%C.

-Lemma dvdC_trans x y z : (x %| y)%C (y %| z)%C (x %| z)%C.
+Lemma dvdC_trans x y z : (x %| y)%C (y %| z)%C (x %| z)%C.

-Lemma dvdC_refl x : (x %| x)%C.
- Hint Resolve dvdC_refl.
+Lemma dvdC_refl x : (x %| x)%C.
+ Hint Resolve dvdC_refl : core.

-Fact dvdC_key x : pred_key (dvdC x).
+Fact dvdC_key x : pred_key (dvdC x).
Lemma dvdC_zmod x : zmod_closed (dvdC x).
-Canonical dvdC_keyed x := KeyedPred (dvdC_key x).
+Canonical dvdC_keyed x := KeyedPred (dvdC_key x).
Canonical dvdC_opprPred x := OpprPred (dvdC_zmod x).
Canonical dvdC_addrPred x := AddrPred (dvdC_zmod x).
Canonical dvdC_zmodPred x := ZmodPred (dvdC_zmod x).

-Lemma dvdC_nat (p n : nat) : (p %| n)%C = (p %| n)%N.
+Lemma dvdC_nat (p n : nat) : (p %| n)%C = (p %| n)%N.

-Lemma dvdC_int (p : nat) x : x \in Cint (p %| x)%C = (p %| `|floorC x|)%N.
+Lemma dvdC_int (p : nat) x : x \in Cint (p %| x)%C = (p %| `|floorC x|)%N.

@@ -821,69 +830,69 @@

-Lemma eqCmod_refl e x : (x == x %[mod e])%C.
+Lemma eqCmod_refl e x : (x == x %[mod e])%C.

-Lemma eqCmodm0 e : (e == 0 %[mod e])%C.
-Hint Resolve eqCmod_refl eqCmodm0.
+Lemma eqCmodm0 e : (e == 0 %[mod e])%C.
+Hint Resolve eqCmod_refl eqCmodm0 : core.

-Lemma eqCmod0 e x : (x == 0 %[mod e])%C = (e %| x)%C.
+Lemma eqCmod0 e x : (x == 0 %[mod e])%C = (e %| x)%C.

-Lemma eqCmod_sym e x y : ((x == y %[mod e]) = (y == x %[mod e]))%C.
+Lemma eqCmod_sym e x y : ((x == y %[mod e]) = (y == x %[mod e]))%C.

Lemma eqCmod_trans e y x z :
-  (x == y %[mod e] y == z %[mod e] x == z %[mod e])%C.
+  (x == y %[mod e] y == z %[mod e] x == z %[mod e])%C.

Lemma eqCmod_transl e x y z :
-  (x == y %[mod e])%C (x == z %[mod e])%C = (y == z %[mod e])%C.
+  (x == y %[mod e])%C (x == z %[mod e])%C = (y == z %[mod e])%C.

Lemma eqCmod_transr e x y z :
-  (x == y %[mod e])%C (z == x %[mod e])%C = (z == y %[mod e])%C.
+  (x == y %[mod e])%C (z == x %[mod e])%C = (z == y %[mod e])%C.

-Lemma eqCmodN e x y : (- x == y %[mod e])%C = (x == - y %[mod e])%C.
+Lemma eqCmodN e x y : (- x == y %[mod e])%C = (x == - y %[mod e])%C.

-Lemma eqCmodDr e x y z : (y + x == z + x %[mod e])%C = (y == z %[mod e])%C.
+Lemma eqCmodDr e x y z : (y + x == z + x %[mod e])%C = (y == z %[mod e])%C.

-Lemma eqCmodDl e x y z : (x + y == x + z %[mod e])%C = (y == z %[mod e])%C.
+Lemma eqCmodDl e x y z : (x + y == x + z %[mod e])%C = (y == z %[mod e])%C.

Lemma eqCmodD e x1 x2 y1 y2 :
-  (x1 == x2 %[mod e] y1 == y2 %[mod e] x1 + y1 == x2 + y2 %[mod e])%C.
+  (x1 == x2 %[mod e] y1 == y2 %[mod e] x1 + y1 == x2 + y2 %[mod e])%C.

-Lemma eqCmod_nat (e m n : nat) : (m == n %[mod e])%C = (m == n %[mod e]).
+Lemma eqCmod_nat (e m n : nat) : (m == n %[mod e])%C = (m == n %[mod e]).

-Lemma eqCmod0_nat (e m : nat) : (m == 0 %[mod e])%C = (e %| m)%N.
+Lemma eqCmod0_nat (e m : nat) : (m == 0 %[mod e])%C = (e %| m)%N.

Lemma eqCmodMr e :
-  {in Cint, z x y, x == y %[mod e] x × z == y × z %[mod e]}%C.
+  {in Cint, z x y, x == y %[mod e] x × z == y × z %[mod e]}%C.

Lemma eqCmodMl e :
-  {in Cint, z x y, x == y %[mod e] z × x == z × y %[mod e]}%C.
+  {in Cint, z x y, x == y %[mod e] z × x == z × y %[mod e]}%C.

-Lemma eqCmodMl0 e : {in Cint, x, x × e == 0 %[mod e]}%C.
+Lemma eqCmodMl0 e : {in Cint, x, x × e == 0 %[mod e]}%C.

-Lemma eqCmodMr0 e : {in Cint, x, e × x == 0 %[mod e]}%C.
+Lemma eqCmodMr0 e : {in Cint, x, e × x == 0 %[mod e]}%C.

-Lemma eqCmod_addl_mul e : {in Cint, x y, x × e + y == y %[mod e]}%C.
+Lemma eqCmod_addl_mul e : {in Cint, x y, x × e + y == y %[mod e]}%C.

-Lemma eqCmodM e : {in Cint & Cint, x1 y2 x2 y1,
-  x1 == x2 %[mod e] y1 == y2 %[mod e] x1 × y1 == x2 × y2 %[mod e]}%C.
+Lemma eqCmodM e : {in Cint & Cint, x1 y2 x2 y1,
+  x1 == x2 %[mod e] y1 == y2 %[mod e] x1 × y1 == x2 × y2 %[mod e]}%C.

@@ -894,26 +903,26 @@

-Lemma ratCK : cancel QtoC CtoQ.
+Lemma ratCK : cancel QtoC CtoQ.

-Lemma getCratK : {in Crat, cancel CtoQ QtoC}.
+Lemma getCratK : {in Crat, cancel CtoQ QtoC}.

-Lemma Crat_rat (a : rat) : QtoC a \in Crat.
+Lemma Crat_rat (a : rat) : QtoC a \in Crat.

-Lemma CratP x : reflect ( a, x = QtoC a) (x \in Crat).
+Lemma CratP x : reflect ( a, x = QtoC a) (x \in Crat).

-Lemma Crat0 : 0 \in Crat.
-Lemma Crat1 : 1 \in Crat.
-Hint Resolve Crat0 Crat1.
+Lemma Crat0 : 0 \in Crat.
+Lemma Crat1 : 1 \in Crat.
+Hint Resolve Crat0 Crat1 : core.

-Fact Crat_key : pred_key Crat.
+Fact Crat_key : pred_key Crat.
Fact Crat_divring_closed : divring_closed Crat.
-Canonical Crat_keyed := KeyedPred Crat_key.
+Canonical Crat_keyed := KeyedPred Crat_key.
Canonical Crat_opprPred := OpprPred Crat_divring_closed.
Canonical Crat_addrPred := AddrPred Crat_divring_closed.
Canonical Crat_mulrPred := MulrPred Crat_divring_closed.
@@ -926,34 +935,35 @@ Canonical Crat_divringPred := DivringPred Crat_divring_closed.

-Lemma rpred_Crat S (ringS : divringPred S) (kS : keyed_pred ringS) :
-  {subset Crat kS}.
+Lemma rpred_Crat
+        (S : {pred algC}) (ringS : divringPred S) (kS : keyed_pred ringS) :
+  {subset Crat kS}.

-Lemma conj_Crat z : z \in Crat z^* = z.
+Lemma conj_Crat z : z \in Crat z^* = z.

-Lemma Creal_Crat : {subset Crat Creal}.
+Lemma Creal_Crat : {subset Crat Creal}.

-Lemma Cint_rat a : (QtoC a \in Cint) = (a \in Qint).
+Lemma Cint_rat a : (QtoC a \in Cint) = (a \in Qint).

Lemma minCpolyP x :
-   {p | minCpoly x = pQtoC p p \is monic
-      & q, root (pQtoC q) x = (p %| q)%R}.
+   {p | minCpoly x = pQtoC p p \is monic
+      & q, root (pQtoC q) x = (p %| q)%R}.

-Lemma minCpoly_monic x : minCpoly x \is monic.
+Lemma minCpoly_monic x : minCpoly x \is monic.

-Lemma minCpoly_eq0 x : (minCpoly x == 0) = false.
+Lemma minCpoly_eq0 x : (minCpoly x == 0) = false.

Lemma root_minCpoly x : root (minCpoly x) x.

-Lemma size_minCpoly x : (1 < size (minCpoly x))%N.
+Lemma size_minCpoly x : (1 < size (minCpoly x))%N.

@@ -965,35 +975,35 @@ Section AutC.

-Implicit Type nu : {rmorphism algC algC}.
+Implicit Type nu : {rmorphism algC algC}.

-Lemma aut_Cnat nu : {in Cnat, nu =1 id}.
+Lemma aut_Cnat nu : {in Cnat, nu =1 id}.

-Lemma aut_Cint nu : {in Cint, nu =1 id}.
+Lemma aut_Cint nu : {in Cint, nu =1 id}.

-Lemma aut_Crat nu : {in Crat, nu =1 id}.
+Lemma aut_Crat nu : {in Crat, nu =1 id}.

-Lemma Cnat_aut nu x : (nu x \in Cnat) = (x \in Cnat).
+Lemma Cnat_aut nu x : (nu x \in Cnat) = (x \in Cnat).

-Lemma Cint_aut nu x : (nu x \in Cint) = (x \in Cint).
+Lemma Cint_aut nu x : (nu x \in Cint) = (x \in Cint).

-Lemma Crat_aut nu x : (nu x \in Crat) = (x \in Crat).
+Lemma Crat_aut nu x : (nu x \in Crat) = (x \in Crat).

-Lemma algC_invaut_subproof nu x : {y | nu y = x}.
+Lemma algC_invaut_subproof nu x : {y | nu y = x}.
Definition algC_invaut nu x := sval (algC_invaut_subproof nu x).

-Lemma algC_invautK nu : cancel (algC_invaut nu) nu.
+Lemma algC_invautK nu : cancel (algC_invaut nu) nu.

-Lemma algC_autK nu : cancel nu (algC_invaut nu).
+Lemma algC_autK nu : cancel nu (algC_invaut nu).

Fact algC_invaut_is_rmorphism nu : rmorphism (algC_invaut nu).
@@ -1001,7 +1011,7 @@ Canonical algC_invaut_rmorphism nu := RMorphism (algC_invaut_is_rmorphism nu).

-Lemma minCpoly_aut nu x : minCpoly (nu x) = minCpoly x.
+Lemma minCpoly_aut nu x : minCpoly (nu x) = minCpoly x.

End AutC.
@@ -1010,13 +1020,13 @@ Section AutLmodC.

-Variables (U V : lmodType algC) (f : {additive U V}).
+Variables (U V : lmodType algC) (f : {additive U V}).

-Lemma raddfZ_Cnat a u : a \in Cnat f (a *: u) = a *: f u.
+Lemma raddfZ_Cnat a u : a \in Cnat f (a *: u) = a *: f u.

-Lemma raddfZ_Cint a u : a \in Cint f (a *: u) = a *: f u.
+Lemma raddfZ_Cint a u : a \in Cint f (a *: u) = a *: f u.

End AutLmodC.
@@ -1028,20 +1038,20 @@ Variable V : lmodType algC.

-Lemma rpredZ_Cnat S (addS : @addrPred V S) (kS : keyed_pred addS) :
-  {in Cnat & kS, z u, z *: u \in kS}.
+Lemma rpredZ_Cnat S (addS : @addrPred V S) (kS : keyed_pred addS) :
+  {in Cnat & kS, z u, z *: u \in kS}.

-Lemma rpredZ_Cint S (subS : @zmodPred V S) (kS : keyed_pred subS) :
-  {in Cint & kS, z u, z *: u \in kS}.
+Lemma rpredZ_Cint S (subS : @zmodPred V S) (kS : keyed_pred subS) :
+  {in Cint & kS, z u, z *: u \in kS}.

End PredCmod.

End AlgebraicsTheory.
-Hint Resolve Creal0 Creal1 Cnat_nat Cnat0 Cnat1 Cint0 Cint1 floorC0 Crat0 Crat1.
-Hint Resolve dvdC0 dvdC_refl eqCmod_refl eqCmodm0.
+Hint Resolve Creal0 Creal1 Cnat_nat Cnat0 Cnat1 Cint0 Cint1 floorC0 Crat0 Crat1 : core.
+Hint Resolve dvdC0 dvdC_refl eqCmod_refl eqCmodm0 : core.
-- cgit v1.2.3