From 9278a127cab6ca870cf7d7b3f634488d187e6c1c Mon Sep 17 00:00:00 2001 From: Kazuhiko Sakaguchi Date: Wed, 27 Feb 2019 09:51:08 +0100 Subject: Fix countalg to finalg inheritances --- mathcomp/algebra/finalg.v | 792 ++++++++++++++++++++++++++++++---------------- 1 file changed, 516 insertions(+), 276 deletions(-) (limited to 'mathcomp') diff --git a/mathcomp/algebra/finalg.v b/mathcomp/algebra/finalg.v index 3e28760..e17c5a6 100644 --- a/mathcomp/algebra/finalg.v +++ b/mathcomp/algebra/finalg.v @@ -79,6 +79,8 @@ Section ClassDef. Record class_of M := Class { base : GRing.Zmodule.class_of M; mixin : mixin_of M base }. Local Coercion base : class_of >-> GRing.Zmodule.class_of. +Local Coercion base2 R (c : class_of R) : CountRing.Zmodule.class_of R := + CountRing.Zmodule.Class c (mixin c). Local Coercion mixin : class_of >-> mixin_of. Structure type := Pack {sort; _ : class_of sort}. @@ -94,18 +96,24 @@ Definition choiceType := @Choice.Pack cT xclass. Definition countType := @Countable.Pack cT (fin_ xclass). Definition finType := @Finite.Pack cT (fin_ xclass). Definition zmodType := @GRing.Zmodule.Pack cT xclass. - -Definition join_finType := @Finite.Pack zmodType (fin_ xclass). - +Definition countZmodType := @CountRing.Zmodule.Pack cT xclass. Definition baseFinGroupType := base_group cT zmodType finType. Definition finGroupType := fin_group baseFinGroupType zmodType. -Definition join_baseFinGroupType := base_group zmodType zmodType finType. -Definition join_finGroupType := fin_group join_baseFinGroupType zmodType. + +Definition zmod_finType := @Finite.Pack zmodType (fin_ xclass). +Definition zmod_baseFinGroupType := base_group zmodType zmodType finType. +Definition zmod_finGroupType := fin_group zmod_baseFinGroupType zmodType. +Definition countZmod_finType := @Finite.Pack countZmodType (fin_ xclass). +Definition countZmod_baseFinGroupType := + base_group countZmodType zmodType finType. +Definition countZmod_finGroupType := + fin_group countZmod_baseFinGroupType zmodType. End ClassDef. Module Exports. Coercion base : class_of >-> GRing.Zmodule.class_of. +Coercion base2 : class_of >-> CountRing.Zmodule.class_of. Coercion mixin : class_of >-> mixin_of. Coercion sort : type >-> Sortclass. Bind Scope ring_scope with sort. @@ -117,18 +125,21 @@ Coercion countType : type >-> Countable.type. Canonical countType. Coercion finType : type >-> Finite.type. Canonical finType. +Canonical baseFinGroupType. +Canonical finGroupType. Coercion zmodType : type >-> GRing.Zmodule.type. Canonical zmodType. -Canonical join_finType. +Coercion countZmodType : type >-> CountRing.Zmodule.type. +Canonical countZmodType. +Canonical zmod_finType. +Canonical zmod_baseFinGroupType. +Canonical zmod_finGroupType. +Canonical countZmod_finType. +Canonical countZmod_baseFinGroupType. +Canonical countZmod_finGroupType. Notation finZmodType := type. Notation "[ 'finZmodType' 'of' T ]" := (do_pack pack T) (at level 0, format "[ 'finZmodType' 'of' T ]") : form_scope. -Coercion baseFinGroupType : type >-> FinGroup.base_type. -Canonical baseFinGroupType. -Coercion finGroupType : type >-> FinGroup.type. -Canonical finGroupType. -Canonical join_baseFinGroupType. -Canonical join_finGroupType. Notation "[ 'baseFinGroupType' 'of' R 'for' +%R ]" := (BaseFinGroupType R (groupMixin _)) (at level 0, format "[ 'baseFinGroupType' 'of' R 'for' +%R ]") @@ -136,7 +147,6 @@ Notation "[ 'baseFinGroupType' 'of' R 'for' +%R ]" := Notation "[ 'finGroupType' 'of' R 'for' +%R ]" := (@FinGroup.clone R _ (finGroupType _) id _ id) (at level 0, format "[ 'finGroupType' 'of' R 'for' +%R ]") : form_scope. -Canonical countZmodType (T : type) := [countZmodType of T]. End Exports. End Zmodule. @@ -163,9 +173,11 @@ Section ClassDef. Record class_of R := Class { base : GRing.Ring.class_of R; mixin : mixin_of R base }. -Definition base2 R (c : class_of R) := Zmodule.Class (mixin c). Local Coercion base : class_of >-> GRing.Ring.class_of. -Local Coercion base2 : class_of >-> Zmodule.class_of. +Local Coercion base2 R (c : class_of R) : CountRing.Ring.class_of R := + CountRing.Ring.Class c (mixin c). +Local Coercion base3 R (c : class_of R) : Zmodule.class_of R := + Zmodule.Class (mixin c). Structure type := Pack {sort; _ : class_of sort}. Local Coercion sort : type >-> Sortclass. @@ -180,21 +192,30 @@ Definition choiceType := @Choice.Pack cT xclass. Definition countType := @Countable.Pack cT (fin_ xclass). Definition finType := @Finite.Pack cT (fin_ xclass). Definition zmodType := @GRing.Zmodule.Pack cT xclass. +Definition countZmodType := @CountRing.Zmodule.Pack cT xclass. Definition finZmodType := @Zmodule.Pack cT xclass. Definition ringType := @GRing.Ring.Pack cT xclass. -Definition join_finType := @Finite.Pack ringType (fin_ xclass). -Definition join_finZmodType := @Zmodule.Pack ringType xclass. - +Definition countRingType := @CountRing.Ring.Pack cT xclass. Definition baseFinGroupType := base_group cT zmodType finType. Definition finGroupType := fin_group baseFinGroupType zmodType. -Definition join_baseFinGroupType := base_group ringType zmodType finType. -Definition join_finGroupType := fin_group join_baseFinGroupType zmodType. + +Definition ring_finType := @Finite.Pack ringType (fin_ xclass). +Definition ring_baseFinGroupType := base_group ringType zmodType finType. +Definition ring_finGroupType := fin_group ring_baseFinGroupType zmodType. +Definition ring_finZmodType := @Zmodule.Pack ringType xclass. +Definition countRing_finType := @Finite.Pack countRingType (fin_ xclass). +Definition countRing_baseFinGroupType := + base_group countRingType zmodType finType. +Definition countRing_finGroupType := + fin_group countRing_baseFinGroupType zmodType. +Definition countRing_finZmodType := @Zmodule.Pack countRingType xclass. End ClassDef. Module Import Exports. Coercion base : class_of >-> GRing.Ring.class_of. -Coercion base2 : class_of >-> Zmodule.class_of. +Coercion base2 : class_of >-> CountRing.Ring.class_of. +Coercion base3 : class_of >-> Zmodule.class_of. Coercion sort : type >-> Sortclass. Bind Scope ring_scope with sort. Coercion eqType : type >-> Equality.type. @@ -205,23 +226,31 @@ Coercion countType : type >-> Countable.type. Canonical countType. Coercion finType : type >-> Finite.type. Canonical finType. +Coercion baseFinGroupType : type >-> FinGroup.base_type. +Canonical baseFinGroupType. +Coercion finGroupType : type >-> FinGroup.type. +Canonical finGroupType. Coercion zmodType : type >-> GRing.Zmodule.type. Canonical zmodType. +Coercion countZmodType : type >-> CountRing.Zmodule.type. +Canonical countZmodType. Coercion finZmodType : type >-> Zmodule.type. Canonical finZmodType. Coercion ringType : type >-> GRing.Ring.type. Canonical ringType. -Canonical join_finType. -Canonical join_finZmodType. +Coercion countRingType : type >-> CountRing.Ring.type. +Canonical countRingType. +Canonical ring_finType. +Canonical ring_baseFinGroupType. +Canonical ring_finGroupType. +Canonical ring_finZmodType. +Canonical countRing_finType. +Canonical countRing_baseFinGroupType. +Canonical countRing_finGroupType. +Canonical countRing_finZmodType. Notation finRingType := type. Notation "[ 'finRingType' 'of' T ]" := (do_pack pack T) (at level 0, format "[ 'finRingType' 'of' T ]") : form_scope. -Canonical baseFinGroupType. -Canonical finGroupType. -Canonical join_baseFinGroupType. -Canonical join_finGroupType. -Canonical countZmodType (T : type) := [countZmodType of T]. -Canonical countRingType (T : type) := [countRingType of T]. End Exports. Section Unit. @@ -268,9 +297,11 @@ Section ClassDef. Record class_of R := Class { base : GRing.ComRing.class_of R; mixin : mixin_of R base }. -Definition base2 R (c : class_of R) := Ring.Class (mixin c). Local Coercion base : class_of >-> GRing.ComRing.class_of. -Local Coercion base2 : class_of >-> Ring.class_of. +Local Coercion base2 R (c : class_of R) : CountRing.ComRing.class_of R := + CountRing.ComRing.Class c (mixin c). +Local Coercion base3 R (c : class_of R) : Ring.class_of R := + Ring.Class (mixin c). Structure type := Pack {sort; _ : class_of sort}. Local Coercion sort : type >-> Sortclass. @@ -285,24 +316,35 @@ Definition choiceType := @Choice.Pack cT xclass. Definition countType := @Countable.Pack cT (fin_ xclass). Definition finType := @Finite.Pack cT (fin_ xclass). Definition zmodType := @GRing.Zmodule.Pack cT xclass. +Definition countZmodType := @CountRing.Zmodule.Pack cT xclass. Definition finZmodType := @Zmodule.Pack cT xclass. Definition ringType := @GRing.Ring.Pack cT xclass. +Definition countRingType := @CountRing.Ring.Pack cT xclass. Definition finRingType := @Ring.Pack cT xclass. Definition comRingType := @GRing.ComRing.Pack cT xclass. -Definition join_finType := @Finite.Pack comRingType (fin_ xclass). -Definition join_finZmodType := @Zmodule.Pack comRingType xclass. -Definition join_finRingType := @Ring.Pack comRingType xclass. - +Definition countComRingType := @CountRing.ComRing.Pack cT xclass. Definition baseFinGroupType := base_group cT zmodType finType. Definition finGroupType := fin_group baseFinGroupType zmodType. -Definition join_baseFinGroupType := base_group comRingType zmodType finType. -Definition join_finGroupType := fin_group join_baseFinGroupType zmodType. + +Definition comRing_finType := @Finite.Pack comRingType (fin_ xclass). +Definition comRing_baseFinGroupType := base_group comRingType zmodType finType. +Definition comRing_finGroupType := fin_group comRing_baseFinGroupType zmodType. +Definition comRing_finZmodType := @Zmodule.Pack comRingType xclass. +Definition comRing_finRingType := @Ring.Pack comRingType xclass. +Definition countComRing_finType := @Finite.Pack countComRingType (fin_ xclass). +Definition countComRing_baseFinGroupType := + base_group countComRingType zmodType finType. +Definition countComRing_finGroupType := + fin_group countComRing_baseFinGroupType zmodType. +Definition countComRing_finZmodType := @Zmodule.Pack countComRingType xclass. +Definition countComRing_finRingType := @Ring.Pack countComRingType xclass. End ClassDef. Module Exports. Coercion base : class_of >-> GRing.ComRing.class_of. -Coercion base2 : class_of >-> Ring.class_of. +Coercion base2 : class_of >-> CountRing.ComRing.class_of. +Coercion base3 : class_of >-> Ring.class_of. Coercion sort : type >-> Sortclass. Bind Scope ring_scope with sort. Coercion eqType : type >-> Equality.type. @@ -313,29 +355,39 @@ Coercion countType : type >-> Countable.type. Canonical countType. Coercion finType : type >-> Finite.type. Canonical finType. +Coercion baseFinGroupType : type >-> FinGroup.base_type. +Canonical baseFinGroupType. +Coercion finGroupType : type >-> FinGroup.type. +Canonical finGroupType. Coercion zmodType : type >-> GRing.Zmodule.type. Canonical zmodType. +Coercion countZmodType : type >-> CountRing.Zmodule.type. +Canonical countZmodType. Coercion finZmodType : type >-> Zmodule.type. Canonical finZmodType. Coercion ringType : type >-> GRing.Ring.type. Canonical ringType. +Coercion countRingType : type >-> CountRing.Ring.type. +Canonical countRingType. Coercion finRingType : type >-> Ring.type. Canonical finRingType. Coercion comRingType : type >-> GRing.ComRing.type. Canonical comRingType. -Canonical join_finType. -Canonical join_finZmodType. -Canonical join_finRingType. +Coercion countComRingType : type >-> CountRing.ComRing.type. +Canonical countComRingType. +Canonical comRing_finType. +Canonical comRing_baseFinGroupType. +Canonical comRing_finGroupType. +Canonical comRing_finZmodType. +Canonical comRing_finRingType. +Canonical countComRing_finType. +Canonical countComRing_baseFinGroupType. +Canonical countComRing_finGroupType. +Canonical countComRing_finZmodType. +Canonical countComRing_finRingType. Notation finComRingType := FinRing.ComRing.type. Notation "[ 'finComRingType' 'of' T ]" := (do_pack pack T) (at level 0, format "[ 'finComRingType' 'of' T ]") : form_scope. -Canonical baseFinGroupType. -Canonical finGroupType. -Canonical join_baseFinGroupType. -Canonical join_finGroupType. -Canonical countZmodType (T : type) := [countZmodType of T]. -Canonical countRingType (T : type) := [countRingType of T]. -Canonical countComRingType (T : type) := [countComRingType of T]. End Exports. End ComRing. @@ -347,9 +399,11 @@ Section ClassDef. Record class_of R := Class { base : GRing.UnitRing.class_of R; mixin : mixin_of R base }. -Definition base2 R (c : class_of R) := Ring.Class (mixin c). Local Coercion base : class_of >-> GRing.UnitRing.class_of. -Local Coercion base2 : class_of >-> Ring.class_of. +Local Coercion base2 R (c : class_of R) : CountRing.UnitRing.class_of R := + CountRing.UnitRing.Class c (mixin c). +Local Coercion base3 R (c : class_of R) : Ring.class_of R := + Ring.Class (mixin c). Structure type := Pack {sort; _ : class_of sort}. Local Coercion sort : type >-> Sortclass. @@ -364,25 +418,38 @@ Definition choiceType := @Choice.Pack cT xclass. Definition countType := @Countable.Pack cT (fin_ xclass). Definition finType := @Finite.Pack cT (fin_ xclass). Definition zmodType := @GRing.Zmodule.Pack cT xclass. +Definition countZmodType := @CountRing.Zmodule.Pack cT xclass. Definition finZmodType := @Zmodule.Pack cT xclass. Definition ringType := @GRing.Ring.Pack cT xclass. +Definition countRingType := @CountRing.Ring.Pack cT xclass. Definition finRingType := @Ring.Pack cT xclass. Definition unitRingType := @GRing.UnitRing.Pack cT xclass. - -Definition join_finType := @Finite.Pack unitRingType (fin_ xclass). -Definition join_finZmodType := @Zmodule.Pack unitRingType xclass. -Definition join_finRingType := @Ring.Pack unitRingType xclass. - +Definition countUnitRingType := @CountRing.UnitRing.Pack cT xclass. Definition baseFinGroupType := base_group cT zmodType finType. Definition finGroupType := fin_group baseFinGroupType zmodType. -Definition join_baseFinGroupType := base_group unitRingType zmodType finType. -Definition join_finGroupType := fin_group join_baseFinGroupType zmodType. + +Definition unitRing_finType := @Finite.Pack unitRingType (fin_ xclass). +Definition unitRing_baseFinGroupType := + base_group unitRingType zmodType finType. +Definition unitRing_finGroupType := + fin_group unitRing_baseFinGroupType zmodType. +Definition unitRing_finZmodType := @Zmodule.Pack unitRingType xclass. +Definition unitRing_finRingType := @Ring.Pack unitRingType xclass. +Definition countUnitRing_finType := + @Finite.Pack countUnitRingType (fin_ xclass). +Definition countUnitRing_baseFinGroupType := + base_group countUnitRingType zmodType finType. +Definition countUnitRing_finGroupType := + fin_group countUnitRing_baseFinGroupType zmodType. +Definition countUnitRing_finZmodType := @Zmodule.Pack countUnitRingType xclass. +Definition countUnitRing_finRingType := @Ring.Pack countUnitRingType xclass. End ClassDef. Module Exports. Coercion base : class_of >-> GRing.UnitRing.class_of. -Coercion base2 : class_of >-> Ring.class_of. +Coercion base2 : class_of >-> CountRing.UnitRing.class_of. +Coercion base3 : class_of >-> Ring.class_of. Coercion sort : type >-> Sortclass. Bind Scope ring_scope with sort. Coercion eqType : type >-> Equality.type. @@ -393,29 +460,39 @@ Coercion countType : type >-> Countable.type. Canonical countType. Coercion finType : type >-> Finite.type. Canonical finType. +Coercion baseFinGroupType : type >-> FinGroup.base_type. +Canonical baseFinGroupType. +Coercion finGroupType : type >-> FinGroup.type. +Canonical finGroupType. Coercion zmodType : type >-> GRing.Zmodule.type. Canonical zmodType. +Coercion countZmodType : type >-> CountRing.Zmodule.type. +Canonical countZmodType. Coercion finZmodType : type >-> Zmodule.type. Canonical finZmodType. Coercion ringType : type >-> GRing.Ring.type. Canonical ringType. +Coercion countRingType : type >-> CountRing.Ring.type. +Canonical countRingType. Coercion finRingType : type >-> Ring.type. Canonical finRingType. Coercion unitRingType : type >-> GRing.UnitRing.type. Canonical unitRingType. -Canonical join_finType. -Canonical join_finZmodType. -Canonical join_finRingType. +Coercion countUnitRingType : type >-> CountRing.UnitRing.type. +Canonical countUnitRingType. +Canonical unitRing_finType. +Canonical unitRing_baseFinGroupType. +Canonical unitRing_finGroupType. +Canonical unitRing_finZmodType. +Canonical unitRing_finRingType. +Canonical countUnitRing_finType. +Canonical countUnitRing_baseFinGroupType. +Canonical countUnitRing_finGroupType. +Canonical countUnitRing_finZmodType. +Canonical countUnitRing_finRingType. Notation finUnitRingType := FinRing.UnitRing.type. Notation "[ 'finUnitRingType' 'of' T ]" := (do_pack pack T) (at level 0, format "[ 'finUnitRingType' 'of' T ]") : form_scope. -Canonical baseFinGroupType. -Canonical finGroupType. -Canonical join_baseFinGroupType. -Canonical join_finGroupType. -Canonical countZmodType (T : type) := [countZmodType of T]. -Canonical countRingType (T : type) := [countRingType of T]. -Canonical countUnitRingType (T : type) := [countUnitRingType of T]. End Exports. End UnitRing. @@ -508,11 +585,13 @@ Section ClassDef. Record class_of R := Class { base : GRing.ComUnitRing.class_of R; mixin : mixin_of R base }. -Definition base2 R (c : class_of R) := ComRing.Class (mixin c). -Definition base3 R (c : class_of R) := @UnitRing.Class R (base c) (mixin c). Local Coercion base : class_of >-> GRing.ComUnitRing.class_of. -Local Coercion base2 : class_of >-> ComRing.class_of. -Local Coercion base3 : class_of >-> UnitRing.class_of. +Local Coercion base2 R (c : class_of R) : CountRing.ComUnitRing.class_of R := + CountRing.ComUnitRing.Class c (mixin c). +Local Coercion base3 R (c : class_of R) : ComRing.class_of R := + ComRing.Class (mixin c). +Local Coercion base4 R (c : class_of R) : UnitRing.class_of R := + @UnitRing.Class R (base c) (mixin c). Structure type := Pack {sort; _ : class_of sort}. Local Coercion sort : type >-> Sortclass. @@ -527,35 +606,60 @@ Definition choiceType := @Choice.Pack cT xclass. Definition countType := @Countable.Pack cT (fin_ xclass). Definition finType := @Finite.Pack cT (fin_ xclass). Definition zmodType := @GRing.Zmodule.Pack cT xclass. +Definition countZmodType := @CountRing.Zmodule.Pack cT xclass. Definition finZmodType := @Zmodule.Pack cT xclass. Definition ringType := @GRing.Ring.Pack cT xclass. +Definition countRingType := @CountRing.Ring.Pack cT xclass. Definition finRingType := @Ring.Pack cT xclass. Definition comRingType := @GRing.ComRing.Pack cT xclass. +Definition countComRingType := @CountRing.ComRing.Pack cT xclass. Definition finComRingType := @ComRing.Pack cT xclass. Definition unitRingType := @GRing.UnitRing.Pack cT xclass. +Definition countUnitRingType := @CountRing.UnitRing.Pack cT xclass. Definition finUnitRingType := @UnitRing.Pack cT xclass. Definition comUnitRingType := @GRing.ComUnitRing.Pack cT xclass. - -Definition join_finType := @Finite.Pack comUnitRingType (fin_ xclass). -Definition join_finZmodType := @Zmodule.Pack comUnitRingType xclass. -Definition join_finRingType := @Ring.Pack comUnitRingType xclass. -Definition join_finComRingType := @ComRing.Pack comUnitRingType xclass. -Definition join_finUnitRingType := @UnitRing.Pack comUnitRingType xclass. -Definition ujoin_finComRingType := @ComRing.Pack unitRingType xclass. -Definition cjoin_finUnitRingType := @UnitRing.Pack comRingType xclass. -Definition fcjoin_finUnitRingType := @UnitRing.Pack finComRingType xclass. - +Definition countComUnitRingType := @CountRing.ComUnitRing.Pack cT xclass. Definition baseFinGroupType := base_group cT zmodType finType. Definition finGroupType := fin_group baseFinGroupType zmodType. -Definition join_baseFinGroupType := base_group comUnitRingType zmodType finType. -Definition join_finGroupType := fin_group join_baseFinGroupType zmodType. + +Definition comUnitRing_finType := @Finite.Pack comUnitRingType (fin_ xclass). +Definition comUnitRing_baseFinGroupType := + base_group comUnitRingType zmodType finType. +Definition comUnitRing_finGroupType := + fin_group comUnitRing_baseFinGroupType zmodType. +Definition comUnitRing_finZmodType := @Zmodule.Pack comUnitRingType xclass. +Definition comUnitRing_finRingType := @Ring.Pack comUnitRingType xclass. +Definition comUnitRing_finComRingType := @ComRing.Pack comUnitRingType xclass. +Definition comUnitRing_finUnitRingType := @UnitRing.Pack comUnitRingType xclass. +Definition countComUnitRing_finType := + @Finite.Pack countComUnitRingType (fin_ xclass). +Definition countComUnitRing_baseFinGroupType := + base_group countComUnitRingType zmodType finType. +Definition countComUnitRing_finGroupType := + fin_group countComUnitRing_baseFinGroupType zmodType. +Definition countComUnitRing_finZmodType := + @Zmodule.Pack countComUnitRingType xclass. +Definition countComUnitRing_finRingType := + @Ring.Pack countComUnitRingType xclass. +Definition countComUnitRing_finComRingType := + @ComRing.Pack countComUnitRingType xclass. +Definition countComUnitRing_finUnitRingType := + @UnitRing.Pack countComUnitRingType xclass. +Definition unitRing_countComRingType := + @CountRing.ComRing.Pack unitRingType xclass. +Definition unitRing_finComRingType := @ComRing.Pack unitRingType xclass. +Definition comRing_countUnitRingType := + @CountRing.UnitRing.Pack comRingType xclass. +Definition comRing_finUnitRingType := @UnitRing.Pack comRingType xclass. +Definition finComRing_finUnitRingType := @UnitRing.Pack finComRingType xclass. End ClassDef. Module Exports. Coercion base : class_of >-> GRing.ComUnitRing.class_of. -Coercion base2 : class_of >-> ComRing.class_of. -Coercion base3 : class_of >-> UnitRing.class_of. +Coercion base2 : class_of >-> CountRing.ComUnitRing.class_of. +Coercion base3 : class_of >-> ComRing.class_of. +Coercion base4 : class_of >-> UnitRing.class_of. Coercion sort : type >-> Sortclass. Bind Scope ring_scope with sort. Coercion eqType : type >-> Equality.type. @@ -566,44 +670,60 @@ Coercion countType : type >-> Countable.type. Canonical countType. Coercion finType : type >-> Finite.type. Canonical finType. +Coercion baseFinGroupType : type >-> FinGroup.base_type. +Canonical baseFinGroupType. +Coercion finGroupType : type >-> FinGroup.type. +Canonical finGroupType. Coercion zmodType : type >-> GRing.Zmodule.type. Canonical zmodType. +Coercion countZmodType : type >-> CountRing.Zmodule.type. +Canonical countZmodType. Coercion finZmodType : type >-> Zmodule.type. Canonical finZmodType. Coercion ringType : type >-> GRing.Ring.type. Canonical ringType. +Coercion countRingType : type >-> CountRing.Ring.type. +Canonical countRingType. Coercion finRingType : type >-> Ring.type. Canonical finRingType. Coercion comRingType : type >-> GRing.ComRing.type. Canonical comRingType. +Coercion countComRingType : type >-> CountRing.ComRing.type. +Canonical countComRingType. Coercion finComRingType : type >-> ComRing.type. Canonical finComRingType. Coercion unitRingType : type >-> GRing.UnitRing.type. Canonical unitRingType. +Coercion countUnitRingType : type >-> CountRing.UnitRing.type. +Canonical countUnitRingType. Coercion finUnitRingType : type >-> UnitRing.type. Canonical finUnitRingType. Coercion comUnitRingType : type >-> GRing.ComUnitRing.type. Canonical comUnitRingType. -Canonical join_finType. -Canonical join_finZmodType. -Canonical join_finRingType. -Canonical join_finComRingType. -Canonical join_finUnitRingType. -Canonical ujoin_finComRingType. -Canonical cjoin_finUnitRingType. -Canonical fcjoin_finUnitRingType. +Coercion countComUnitRingType : type >-> CountRing.ComUnitRing.type. +Canonical countComUnitRingType. +Canonical comUnitRing_finType. +Canonical comUnitRing_baseFinGroupType. +Canonical comUnitRing_finGroupType. +Canonical comUnitRing_finZmodType. +Canonical comUnitRing_finRingType. +Canonical comUnitRing_finComRingType. +Canonical comUnitRing_finUnitRingType. +Canonical countComUnitRing_finType. +Canonical countComUnitRing_baseFinGroupType. +Canonical countComUnitRing_finGroupType. +Canonical countComUnitRing_finZmodType. +Canonical countComUnitRing_finRingType. +Canonical countComUnitRing_finComRingType. +Canonical countComUnitRing_finUnitRingType. +Canonical unitRing_countComRingType. +Canonical unitRing_finComRingType. +Canonical comRing_countUnitRingType. +Canonical comRing_finUnitRingType. +Canonical finComRing_finUnitRingType. Notation finComUnitRingType := FinRing.ComUnitRing.type. Notation "[ 'finComUnitRingType' 'of' T ]" := (do_pack pack T) (at level 0, format "[ 'finComUnitRingType' 'of' T ]") : form_scope. -Canonical baseFinGroupType. -Canonical finGroupType. -Canonical join_baseFinGroupType. -Canonical join_finGroupType. -Canonical countZmodType (T : type) := [countZmodType of T]. -Canonical countRingType (T : type) := [countRingType of T]. -Canonical countUnitRingType (T : type) := [countUnitRingType of T]. -Canonical countComRingType (T : type) := [countComRingType of T]. -Canonical countComUnitRingType (T : type) := [countComUnitRingType of T]. End Exports. End ComUnitRing. @@ -615,9 +735,11 @@ Section ClassDef. Record class_of R := Class { base : GRing.IntegralDomain.class_of R; mixin : mixin_of R base }. -Definition base2 R (c : class_of R) := ComUnitRing.Class (mixin c). Local Coercion base : class_of >-> GRing.IntegralDomain.class_of. -Local Coercion base2 : class_of >-> ComUnitRing.class_of. +Local Coercion base2 R (c : class_of R) : CountRing.IntegralDomain.class_of R := + CountRing.IntegralDomain.Class c (mixin c). +Local Coercion base3 R (c : class_of R) : ComUnitRing.class_of R := + ComUnitRing.Class (mixin c). Structure type := Pack {sort; _ : class_of sort}. Local Coercion sort : type >-> Sortclass. @@ -632,34 +754,52 @@ Definition choiceType := @Choice.Pack cT xclass. Definition countType := @Countable.Pack cT (fin_ xclass). Definition finType := @Finite.Pack cT (fin_ xclass). Definition zmodType := @GRing.Zmodule.Pack cT xclass. +Definition countZmodType := @CountRing.Zmodule.Pack cT xclass. Definition finZmodType := @Zmodule.Pack cT xclass. Definition ringType := @GRing.Ring.Pack cT xclass. +Definition countRingType := @CountRing.Ring.Pack cT xclass. Definition finRingType := @Ring.Pack cT xclass. Definition comRingType := @GRing.ComRing.Pack cT xclass. +Definition countComRingType := @CountRing.ComRing.Pack cT xclass. Definition finComRingType := @ComRing.Pack cT xclass. Definition unitRingType := @GRing.UnitRing.Pack cT xclass. +Definition countUnitRingType := @CountRing.UnitRing.Pack cT xclass. Definition finUnitRingType := @UnitRing.Pack cT xclass. Definition comUnitRingType := @GRing.ComUnitRing.Pack cT xclass. +Definition countComUnitRingType := @CountRing.ComUnitRing.Pack cT xclass. Definition finComUnitRingType := @ComUnitRing.Pack cT xclass. Definition idomainType := @GRing.IntegralDomain.Pack cT xclass. - -Definition join_finType := @Finite.Pack idomainType (fin_ xclass). -Definition join_finZmodType := @Zmodule.Pack idomainType xclass. -Definition join_finRingType := @Ring.Pack idomainType xclass. -Definition join_finUnitRingType := @UnitRing.Pack idomainType xclass. -Definition join_finComRingType := @ComRing.Pack idomainType xclass. -Definition join_finComUnitRingType := @ComUnitRing.Pack idomainType xclass. - +Definition countIdomainType := @CountRing.IntegralDomain.Pack cT xclass. Definition baseFinGroupType := base_group cT zmodType finType. Definition finGroupType := fin_group baseFinGroupType zmodType. -Definition join_baseFinGroupType := base_group idomainType zmodType finType. -Definition join_finGroupType := fin_group join_baseFinGroupType zmodType. + +Definition idomain_finType := @Finite.Pack idomainType (fin_ xclass). +Definition idomain_baseFinGroupType := base_group idomainType zmodType finType. +Definition idomain_finGroupType := fin_group idomain_baseFinGroupType zmodType. +Definition idomain_finZmodType := @Zmodule.Pack idomainType xclass. +Definition idomain_finRingType := @Ring.Pack idomainType xclass. +Definition idomain_finUnitRingType := @UnitRing.Pack idomainType xclass. +Definition idomain_finComRingType := @ComRing.Pack idomainType xclass. +Definition idomain_finComUnitRingType := @ComUnitRing.Pack idomainType xclass. +Definition countIdomain_finType := @Finite.Pack countIdomainType (fin_ xclass). +Definition countIdomain_baseFinGroupType := + base_group countIdomainType zmodType finType. +Definition countIdomain_finGroupType := + fin_group countIdomain_baseFinGroupType zmodType. +Definition countIdomain_finZmodType := @Zmodule.Pack countIdomainType xclass. +Definition countIdomain_finRingType := @Ring.Pack countIdomainType xclass. +Definition countIdomain_finUnitRingType := + @UnitRing.Pack countIdomainType xclass. +Definition countIdomain_finComRingType := @ComRing.Pack countIdomainType xclass. +Definition countIdomain_finComUnitRingType := + @ComUnitRing.Pack countIdomainType xclass. End ClassDef. Module Exports. Coercion base : class_of >-> GRing.IntegralDomain.class_of. -Coercion base2 : class_of >-> ComUnitRing.class_of. +Coercion base2 : class_of >-> CountRing.IntegralDomain.class_of. +Coercion base3 : class_of >-> ComUnitRing.class_of. Coercion sort : type >-> Sortclass. Bind Scope ring_scope with sort. Coercion eqType : type >-> Equality.type. @@ -670,47 +810,63 @@ Coercion countType : type >-> Countable.type. Canonical countType. Coercion finType : type >-> Finite.type. Canonical finType. +Coercion baseFinGroupType : type >-> FinGroup.base_type. +Canonical baseFinGroupType. +Coercion finGroupType : type >-> FinGroup.type. +Canonical finGroupType. Coercion zmodType : type >-> GRing.Zmodule.type. Canonical zmodType. +Coercion countZmodType : type >-> CountRing.Zmodule.type. +Canonical countZmodType. Coercion finZmodType : type >-> Zmodule.type. Canonical finZmodType. Coercion ringType : type >-> GRing.Ring.type. Canonical ringType. +Coercion countRingType : type >-> CountRing.Ring.type. +Canonical countRingType. Coercion finRingType : type >-> Ring.type. Canonical finRingType. Coercion comRingType : type >-> GRing.ComRing.type. Canonical comRingType. +Coercion countComRingType : type >-> CountRing.ComRing.type. +Canonical countComRingType. Coercion finComRingType : type >-> ComRing.type. Canonical finComRingType. Coercion unitRingType : type >-> GRing.UnitRing.type. Canonical unitRingType. +Coercion countUnitRingType : type >-> CountRing.UnitRing.type. +Canonical countUnitRingType. Coercion finUnitRingType : type >-> UnitRing.type. Canonical finUnitRingType. Coercion comUnitRingType : type >-> GRing.ComUnitRing.type. Canonical comUnitRingType. +Coercion countComUnitRingType : type >-> CountRing.ComUnitRing.type. +Canonical countComUnitRingType. Coercion finComUnitRingType : type >-> ComUnitRing.type. Canonical finComUnitRingType. Coercion idomainType : type >-> GRing.IntegralDomain.type. Canonical idomainType. -Canonical join_finType. -Canonical join_finZmodType. -Canonical join_finRingType. -Canonical join_finComRingType. -Canonical join_finUnitRingType. -Canonical join_finComUnitRingType. +Coercion countIdomainType : type >-> CountRing.IntegralDomain.type. +Canonical countIdomainType. +Canonical idomain_finType. +Canonical idomain_baseFinGroupType. +Canonical idomain_finGroupType. +Canonical idomain_finZmodType. +Canonical idomain_finRingType. +Canonical idomain_finUnitRingType. +Canonical idomain_finComRingType. +Canonical idomain_finComUnitRingType. +Canonical countIdomain_finType. +Canonical countIdomain_baseFinGroupType. +Canonical countIdomain_finGroupType. +Canonical countIdomain_finZmodType. +Canonical countIdomain_finRingType. +Canonical countIdomain_finUnitRingType. +Canonical countIdomain_finComRingType. +Canonical countIdomain_finComUnitRingType. Notation finIdomainType := FinRing.IntegralDomain.type. Notation "[ 'finIdomainType' 'of' T ]" := (do_pack pack T) (at level 0, format "[ 'finIdomainType' 'of' T ]") : form_scope. -Canonical baseFinGroupType. -Canonical finGroupType. -Canonical join_baseFinGroupType. -Canonical join_finGroupType. -Canonical countZmodType (T : type) := [countZmodType of T]. -Canonical countRingType (T : type) := [countRingType of T]. -Canonical countUnitRingType (T : type) := [countUnitRingType of T]. -Canonical countComRingType (T : type) := [countComRingType of T]. -Canonical countComUnitRingType (T : type) := [countComUnitRingType of T]. -Canonical countIdomainType (T : type) := [countIdomainType of T]. End Exports. End IntegralDomain. @@ -722,9 +878,11 @@ Section ClassDef. Record class_of R := Class { base : GRing.Field.class_of R; mixin : mixin_of R base }. -Definition base2 R (c : class_of R) := IntegralDomain.Class (mixin c). Local Coercion base : class_of >-> GRing.Field.class_of. -Local Coercion base2 : class_of >-> IntegralDomain.class_of. +Local Coercion base2 R (c : class_of R) : CountRing.Field.class_of R := + CountRing.Field.Class c (mixin c). +Local Coercion base3 R (c : class_of R) : IntegralDomain.class_of R := + IntegralDomain.Class (mixin c). Structure type := Pack {sort; _ : class_of sort}. Local Coercion sort : type >-> Sortclass. @@ -739,37 +897,57 @@ Definition choiceType := @Choice.Pack cT xclass. Definition countType := @Countable.Pack cT (fin_ xclass). Definition finType := @Finite.Pack cT (fin_ xclass). Definition zmodType := @GRing.Zmodule.Pack cT xclass. +Definition countZmodType := @CountRing.Zmodule.Pack cT xclass. Definition finZmodType := @Zmodule.Pack cT xclass. Definition ringType := @GRing.Ring.Pack cT xclass. +Definition countRingType := @CountRing.Ring.Pack cT xclass. Definition finRingType := @Ring.Pack cT xclass. Definition comRingType := @GRing.ComRing.Pack cT xclass. +Definition countComRingType := @CountRing.ComRing.Pack cT xclass. Definition finComRingType := @ComRing.Pack cT xclass. Definition unitRingType := @GRing.UnitRing.Pack cT xclass. +Definition countUnitRingType := @CountRing.UnitRing.Pack cT xclass. Definition finUnitRingType := @UnitRing.Pack cT xclass. Definition comUnitRingType := @GRing.ComUnitRing.Pack cT xclass. +Definition countComUnitRingType := @CountRing.ComUnitRing.Pack cT xclass. Definition finComUnitRingType := @ComUnitRing.Pack cT xclass. Definition idomainType := @GRing.IntegralDomain.Pack cT xclass. +Definition countIdomainType := @CountRing.IntegralDomain.Pack cT xclass. Definition finIdomainType := @IntegralDomain.Pack cT xclass. Definition fieldType := @GRing.Field.Pack cT xclass. - -Definition join_finType := @Finite.Pack fieldType (fin_ xclass). -Definition join_finZmodType := @Zmodule.Pack fieldType xclass. -Definition join_finRingType := @Ring.Pack fieldType xclass. -Definition join_finUnitRingType := @UnitRing.Pack fieldType xclass. -Definition join_finComRingType := @ComRing.Pack fieldType xclass. -Definition join_finComUnitRingType := @ComUnitRing.Pack fieldType xclass. -Definition join_finIdomainType := @IntegralDomain.Pack fieldType xclass. - +Definition countFieldType := @CountRing.Field.Pack cT xclass. Definition baseFinGroupType := base_group cT zmodType finType. Definition finGroupType := fin_group baseFinGroupType zmodType. -Definition join_baseFinGroupType := base_group fieldType zmodType finType. -Definition join_finGroupType := fin_group join_baseFinGroupType zmodType. + +Definition field_finType := @Finite.Pack fieldType (fin_ xclass). +Definition field_baseFinGroupType := base_group fieldType zmodType finType. +Definition field_finGroupType := fin_group field_baseFinGroupType zmodType. +Definition field_finZmodType := @Zmodule.Pack fieldType xclass. +Definition field_finRingType := @Ring.Pack fieldType xclass. +Definition field_finUnitRingType := @UnitRing.Pack fieldType xclass. +Definition field_finComRingType := @ComRing.Pack fieldType xclass. +Definition field_finComUnitRingType := @ComUnitRing.Pack fieldType xclass. +Definition field_finIdomainType := @IntegralDomain.Pack fieldType xclass. +Definition countField_finType := @Finite.Pack countFieldType (fin_ xclass). +Definition countField_baseFinGroupType := + base_group countFieldType zmodType finType. +Definition countField_finGroupType := + fin_group countField_baseFinGroupType zmodType. +Definition countField_finZmodType := @Zmodule.Pack countFieldType xclass. +Definition countField_finRingType := @Ring.Pack countFieldType xclass. +Definition countField_finUnitRingType := @UnitRing.Pack countFieldType xclass. +Definition countField_finComRingType := @ComRing.Pack countFieldType xclass. +Definition countField_finComUnitRingType := + @ComUnitRing.Pack countFieldType xclass. +Definition countField_finIdomainType := + @IntegralDomain.Pack countFieldType xclass. End ClassDef. Module Exports. Coercion base : class_of >-> GRing.Field.class_of. -Coercion base2 : class_of >-> IntegralDomain.class_of. +Coercion base2 : class_of >-> CountRing.Field.class_of. +Coercion base3 : class_of >-> IntegralDomain.class_of. Coercion sort : type >-> Sortclass. Bind Scope ring_scope with sort. Coercion eqType : type >-> Equality.type. @@ -780,53 +958,71 @@ Coercion countType : type >-> Countable.type. Canonical countType. Coercion finType : type >-> Finite.type. Canonical finType. +Coercion baseFinGroupType : type >-> FinGroup.base_type. +Canonical baseFinGroupType. +Coercion finGroupType : type >-> FinGroup.type. +Canonical finGroupType. Coercion zmodType : type >-> GRing.Zmodule.type. Canonical zmodType. +Coercion countZmodType : type >-> CountRing.Zmodule.type. +Canonical countZmodType. Coercion finZmodType : type >-> Zmodule.type. Canonical finZmodType. Coercion ringType : type >-> GRing.Ring.type. Canonical ringType. +Coercion countRingType : type >-> CountRing.Ring.type. +Canonical countRingType. Coercion finRingType : type >-> Ring.type. Canonical finRingType. Coercion comRingType : type >-> GRing.ComRing.type. Canonical comRingType. +Coercion countComRingType : type >-> CountRing.ComRing.type. +Canonical countComRingType. Coercion finComRingType : type >-> ComRing.type. Canonical finComRingType. Coercion unitRingType : type >-> GRing.UnitRing.type. Canonical unitRingType. +Coercion countUnitRingType : type >-> CountRing.UnitRing.type. +Canonical countUnitRingType. Coercion finUnitRingType : type >-> UnitRing.type. Canonical finUnitRingType. Coercion comUnitRingType : type >-> GRing.ComUnitRing.type. Canonical comUnitRingType. +Coercion countComUnitRingType : type >-> CountRing.ComUnitRing.type. +Canonical countComUnitRingType. Coercion finComUnitRingType : type >-> ComUnitRing.type. Canonical finComUnitRingType. Coercion idomainType : type >-> GRing.IntegralDomain.type. Canonical idomainType. +Coercion countIdomainType : type >-> CountRing.IntegralDomain.type. +Canonical countIdomainType. Coercion finIdomainType : type >-> IntegralDomain.type. Canonical finIdomainType. Coercion fieldType : type >-> GRing.Field.type. Canonical fieldType. -Canonical join_finType. -Canonical join_finZmodType. -Canonical join_finRingType. -Canonical join_finComRingType. -Canonical join_finUnitRingType. -Canonical join_finComUnitRingType. -Canonical join_finIdomainType. +Coercion countFieldType : type >-> CountRing.Field.type. +Canonical countFieldType. +Canonical field_finType. +Canonical field_baseFinGroupType. +Canonical field_finGroupType. +Canonical field_finZmodType. +Canonical field_finRingType. +Canonical field_finUnitRingType. +Canonical field_finComRingType. +Canonical field_finComUnitRingType. +Canonical field_finIdomainType. +Canonical countField_finType. +Canonical countField_baseFinGroupType. +Canonical countField_finGroupType. +Canonical countField_finZmodType. +Canonical countField_finRingType. +Canonical countField_finUnitRingType. +Canonical countField_finComRingType. +Canonical countField_finComUnitRingType. +Canonical countField_finIdomainType. Notation finFieldType := FinRing.Field.type. Notation "[ 'finFieldType' 'of' T ]" := (do_pack pack T) (at level 0, format "[ 'finFieldType' 'of' T ]") : form_scope. -Canonical baseFinGroupType. -Canonical finGroupType. -Canonical join_baseFinGroupType. -Canonical join_finGroupType. -Canonical countZmodType (T : type) := [countZmodType of T]. -Canonical countRingType (T : type) := [countRingType of T]. -Canonical countUnitRingType (T : type) := [countUnitRingType of T]. -Canonical countComRingType (T : type) := [countComRingType of T]. -Canonical countComUnitRingType (T : type) := [countComUnitRingType of T]. -Canonical countIdomainType (T : type) := [countIdomainType of T]. -Canonical countFieldType (T : type) := [countFieldType of T]. End Exports. End Field. @@ -911,9 +1107,9 @@ Variable R : ringType. Record class_of M := Class { base : GRing.Lmodule.class_of R M; mixin : mixin_of M base }. -Definition base2 R (c : class_of R) := Zmodule.Class (mixin c). Local Coercion base : class_of >-> GRing.Lmodule.class_of. -Local Coercion base2 : class_of >-> Zmodule.class_of. +Local Coercion base2 R (c : class_of R) : Zmodule.class_of R := + Zmodule.Class (mixin c). Structure type (phR : phant R) := Pack {sort; _ : class_of sort}. Local Coercion sort : type >-> Sortclass. @@ -928,15 +1124,18 @@ Definition choiceType := @Choice.Pack cT xclass. Definition countType := @Countable.Pack cT (fin_ xclass). Definition finType := @Finite.Pack cT (fin_ xclass). Definition zmodType := @GRing.Zmodule.Pack cT xclass. +Definition countZmodType := @CountRing.Zmodule.Pack cT xclass. Definition finZmodType := @Zmodule.Pack cT xclass. Definition lmodType := @GRing.Lmodule.Pack R phR cT xclass. -Definition join_finType := @Finite.Pack lmodType (fin_ xclass). -Definition join_finZmodType := @Zmodule.Pack lmodType xclass. - Definition baseFinGroupType := base_group cT zmodType finType. Definition finGroupType := fin_group baseFinGroupType zmodType. -Definition join_baseFinGroupType := base_group lmodType zmodType finType. -Definition join_finGroupType := fin_group join_baseFinGroupType zmodType. + +Definition lmod_countType := @Countable.Pack lmodType (fin_ xclass). +Definition lmod_finType := @Finite.Pack lmodType (fin_ xclass). +Definition lmod_baseFinGroupType := base_group lmodType zmodType finType. +Definition lmod_finGroupType := fin_group lmod_baseFinGroupType zmodType. +Definition lmod_countZmodType := @CountRing.Zmodule.Pack lmodType xclass. +Definition lmod_finZmodType := @Zmodule.Pack lmodType xclass. End ClassDef. @@ -953,25 +1152,27 @@ Coercion countType : type >-> Countable.type. Canonical countType. Coercion finType : type >-> Finite.type. Canonical finType. +Coercion baseFinGroupType : type >-> FinGroup.base_type. +Canonical baseFinGroupType. +Coercion finGroupType : type >-> FinGroup.type. +Canonical finGroupType. Coercion zmodType : type >-> GRing.Zmodule.type. Canonical zmodType. +Coercion countZmodType : type >-> CountRing.Zmodule.type. +Canonical countZmodType. Coercion finZmodType : type >-> Zmodule.type. Canonical finZmodType. Coercion lmodType : type >-> GRing.Lmodule.type. Canonical lmodType. -Canonical join_finType. -Canonical join_finZmodType. +Canonical lmod_countType. +Canonical lmod_finType. +Canonical lmod_baseFinGroupType. +Canonical lmod_finGroupType. +Canonical lmod_countZmodType. +Canonical lmod_finZmodType. Notation finLmodType R := (FinRing.Lmodule.type (Phant R)). Notation "[ 'finLmodType' R 'of' T ]" := (do_pack (@pack _ (Phant R)) T) (at level 0, format "[ 'finLmodType' R 'of' T ]") : form_scope. -Canonical baseFinGroupType. -Canonical finGroupType. -Canonical join_baseFinGroupType. -Canonical join_finGroupType. -Section counttype. -Variables (R : ringType) (phR : phant R) (T : type phR). -Canonical countZmodType := [countZmodType of T]. -End counttype. End Exports. End Lmodule. @@ -1004,25 +1205,32 @@ Definition choiceType := @Choice.Pack cT xclass. Definition countType := @Countable.Pack cT (fin_ xclass). Definition finType := @Finite.Pack cT (fin_ xclass). Definition zmodType := @GRing.Zmodule.Pack cT xclass. +Definition countZmodType := @CountRing.Zmodule.Pack cT xclass. Definition finZmodType := @Zmodule.Pack cT xclass. Definition ringType := @GRing.Ring.Pack cT xclass. +Definition countRingType := @CountRing.Ring.Pack cT xclass. Definition finRingType := @Ring.Pack cT xclass. Definition lmodType := @GRing.Lmodule.Pack R phR cT xclass. Definition finLmodType := @Lmodule.Pack R phR cT xclass. Definition lalgType := @GRing.Lalgebra.Pack R phR cT xclass. - -Definition join_finType := @Finite.Pack lalgType (fin_ xclass). -Definition join_finZmodType := @Zmodule.Pack lalgType xclass. -Definition join_finLmodType := @Lmodule.Pack R phR lalgType xclass. -Definition join_finRingType := @Ring.Pack lalgType xclass. -Definition rjoin_finLmodType := @Lmodule.Pack R phR ringType xclass. -Definition ljoin_finRingType := @Ring.Pack lmodType xclass. -Definition fljoin_finRingType := @Ring.Pack finLmodType xclass. - Definition baseFinGroupType := base_group cT zmodType finType. Definition finGroupType := fin_group baseFinGroupType zmodType. -Definition join_baseFinGroupType := base_group lalgType zmodType finType. -Definition join_finGroupType := fin_group join_baseFinGroupType zmodType. + +Definition lalg_countType := @Countable.Pack lalgType (fin_ xclass). +Definition lalg_finType := @Finite.Pack lalgType (fin_ xclass). +Definition lalg_baseFinGroupType := base_group lalgType zmodType finType. +Definition lalg_finGroupType := fin_group lalg_baseFinGroupType zmodType. +Definition lalg_countZmodType := @CountRing.Zmodule.Pack lalgType xclass. +Definition lalg_finZmodType := @Zmodule.Pack lalgType xclass. +Definition lalg_finLmodType := @Lmodule.Pack R phR lalgType xclass. +Definition lalg_countRingType := @CountRing.Ring.Pack lalgType xclass. +Definition lalg_finRingType := @Ring.Pack lalgType xclass. +Definition lmod_ringType := @GRing.Ring.Pack lmodType xclass. +Definition lmod_countRingType := @CountRing.Ring.Pack lmodType xclass. +Definition lmod_finRingType := @Ring.Pack lmodType xclass. +Definition finLmod_ringType := @GRing.Ring.Pack finLmodType xclass. +Definition finLmod_countRingType := @CountRing.Ring.Pack finLmodType xclass. +Definition finLmod_finRingType := @Ring.Pack finLmodType xclass. End ClassDef. @@ -1040,12 +1248,20 @@ Coercion countType : type >-> Countable.type. Canonical countType. Coercion finType : type >-> Finite.type. Canonical finType. +Coercion baseFinGroupType : type >-> FinGroup.base_type. +Canonical baseFinGroupType. +Coercion finGroupType : type >-> FinGroup.type. +Canonical finGroupType. Coercion zmodType : type >-> GRing.Zmodule.type. Canonical zmodType. +Coercion countZmodType : type >-> CountRing.Zmodule.type. +Canonical countZmodType. Coercion finZmodType : type >-> Zmodule.type. Canonical finZmodType. Coercion ringType : type >-> GRing.Ring.type. Canonical ringType. +Coercion countRingType : type >-> CountRing.Ring.type. +Canonical countRingType. Coercion finRingType : type >-> Ring.type. Canonical finRingType. Coercion lmodType : type >-> GRing.Lmodule.type. @@ -1054,25 +1270,24 @@ Coercion finLmodType : type >-> Lmodule.type. Canonical finLmodType. Coercion lalgType : type >-> GRing.Lalgebra.type. Canonical lalgType. -Canonical join_finType. -Canonical join_finZmodType. -Canonical join_finLmodType. -Canonical join_finRingType. -Canonical rjoin_finLmodType. -Canonical ljoin_finRingType. -Canonical fljoin_finRingType. +Canonical lalg_countType. +Canonical lalg_finType. +Canonical lalg_baseFinGroupType. +Canonical lalg_finGroupType. +Canonical lalg_countZmodType. +Canonical lalg_finZmodType. +Canonical lalg_finLmodType. +Canonical lalg_countRingType. +Canonical lalg_finRingType. +Canonical lmod_ringType. +Canonical lmod_countRingType. +Canonical lmod_finRingType. +Canonical finLmod_ringType. +Canonical finLmod_countRingType. +Canonical finLmod_finRingType. Notation finLalgType R := (FinRing.Lalgebra.type (Phant R)). Notation "[ 'finLalgType' R 'of' T ]" := (do_pack (@pack _ (Phant R)) T) (at level 0, format "[ 'finLalgType' R 'of' T ]") : form_scope. -Canonical baseFinGroupType. -Canonical finGroupType. -Canonical join_baseFinGroupType. -Canonical join_finGroupType. -Section counttype. -Variables (R : GRing.Ring.type) (phR : phant R) (T : type phR). -Canonical countZmodType := [countZmodType of T]. -Canonical countRingType := [countRingType of T]. -End counttype. End Exports. End Lalgebra. @@ -1103,25 +1318,29 @@ Definition choiceType := @Choice.Pack cT xclass. Definition countType := @Countable.Pack cT (fin_ xclass). Definition finType := @Finite.Pack cT (fin_ xclass). Definition zmodType := @GRing.Zmodule.Pack cT xclass. +Definition countZmodType := @CountRing.Zmodule.Pack cT xclass. Definition finZmodType := @Zmodule.Pack cT xclass. Definition ringType := @GRing.Ring.Pack cT xclass. +Definition countRingType := @CountRing.Ring.Pack cT xclass. Definition finRingType := @Ring.Pack cT xclass. Definition lmodType := @GRing.Lmodule.Pack R phR cT xclass. Definition finLmodType := @Lmodule.Pack R phR cT xclass. Definition lalgType := @GRing.Lalgebra.Pack R phR cT xclass. Definition finLalgType := @Lalgebra.Pack R phR cT xclass. Definition algType := @GRing.Algebra.Pack R phR cT xclass. - -Definition join_finType := @Finite.Pack algType (fin_ xclass). -Definition join_finZmodType := @Zmodule.Pack algType xclass. -Definition join_finRingType := @Ring.Pack algType xclass. -Definition join_finLmodType := @Lmodule.Pack R phR algType xclass. -Definition join_finLalgType := @Lalgebra.Pack R phR algType xclass. - Definition baseFinGroupType := base_group cT zmodType finType. Definition finGroupType := fin_group baseFinGroupType zmodType. -Definition join_baseFinGroupType := base_group algType zmodType finType. -Definition join_finGroupType := fin_group join_baseFinGroupType zmodType. + +Definition alg_countType := @Countable.Pack algType (fin_ xclass). +Definition alg_finType := @Finite.Pack algType (fin_ xclass). +Definition alg_baseFinGroupType := base_group algType zmodType finType. +Definition alg_finGroupType := fin_group alg_baseFinGroupType zmodType. +Definition alg_countZmodType := @CountRing.Zmodule.Pack algType xclass. +Definition alg_finZmodType := @Zmodule.Pack algType xclass. +Definition alg_countRingType := @CountRing.Ring.Pack algType xclass. +Definition alg_finRingType := @Ring.Pack algType xclass. +Definition alg_finLmodType := @Lmodule.Pack R phR algType xclass. +Definition alg_finLalgType := @Lalgebra.Pack R phR algType xclass. End ClassDef. @@ -1138,12 +1357,18 @@ Coercion countType : type >-> Countable.type. Canonical countType. Coercion finType : type >-> Finite.type. Canonical finType. +Coercion baseFinGroupType : type >-> FinGroup.base_type. +Canonical baseFinGroupType. +Coercion finGroupType : type >-> FinGroup.type. +Canonical finGroupType. Coercion zmodType : type >-> GRing.Zmodule.type. Canonical zmodType. Coercion finZmodType : type >-> Zmodule.type. Canonical finZmodType. Coercion ringType : type >-> GRing.Ring.type. Canonical ringType. +Coercion countRingType : type >-> CountRing.Ring.type. +Canonical countRingType. Coercion finRingType : type >-> Ring.type. Canonical finRingType. Coercion lmodType : type >-> GRing.Lmodule.type. @@ -1156,23 +1381,19 @@ Coercion finLalgType : type >-> Lalgebra.type. Canonical finLalgType. Coercion algType : type >-> GRing.Algebra.type. Canonical algType. -Canonical join_finType. -Canonical join_finZmodType. -Canonical join_finLmodType. -Canonical join_finRingType. -Canonical join_finLalgType. +Canonical alg_countType. +Canonical alg_finType. +Canonical alg_baseFinGroupType. +Canonical alg_finGroupType. +Canonical alg_countZmodType. +Canonical alg_finZmodType. +Canonical alg_countRingType. +Canonical alg_finRingType. +Canonical alg_finLmodType. +Canonical alg_finLalgType. Notation finAlgType R := (type (Phant R)). Notation "[ 'finAlgType' R 'of' T ]" := (do_pack (@pack _ (Phant R)) T) (at level 0, format "[ 'finAlgType' R 'of' T ]") : form_scope. -Canonical baseFinGroupType. -Canonical finGroupType. -Canonical join_baseFinGroupType. -Canonical join_finGroupType. -Section counttype. -Variables (R : GRing.Ring.type) (phR : phant R) (T : type phR). -Canonical countZmodType := [countZmodType of T]. -Canonical countRingType := [countRingType of T]. -End counttype. End Exports. End Algebra. @@ -1206,10 +1427,13 @@ Definition choiceType := @Choice.Pack cT xclass. Definition countType := @Countable.Pack cT (fin_ xclass). Definition finType := @Finite.Pack cT (fin_ xclass). Definition zmodType := @GRing.Zmodule.Pack cT xclass. +Definition countZmodType := @CountRing.Zmodule.Pack cT xclass. Definition finZmodType := @Zmodule.Pack cT xclass. Definition ringType := @GRing.Ring.Pack cT xclass. +Definition countRingType := @CountRing.Ring.Pack cT xclass. Definition finRingType := @Ring.Pack cT xclass. Definition unitRingType := @GRing.UnitRing.Pack cT xclass. +Definition countUnitRingType := @CountRing.UnitRing.Pack cT xclass. Definition finUnitRingType := @UnitRing.Pack cT xclass. Definition lmodType := @GRing.Lmodule.Pack R phR cT xclass. Definition finLmodType := @Lmodule.Pack R phR cT xclass. @@ -1218,28 +1442,37 @@ Definition finLalgType := @Lalgebra.Pack R phR cT xclass. Definition algType := @GRing.Algebra.Pack R phR cT xclass. Definition finAlgType := @Algebra.Pack R phR cT xclass. Definition unitAlgType := @GRing.UnitAlgebra.Pack R phR cT xclass. - -Definition join_finType := @Finite.Pack unitAlgType (fin_ xclass). -Definition join_finZmodType := @Zmodule.Pack unitAlgType xclass. -Definition join_finRingType := @Ring.Pack unitAlgType xclass. -Definition join_finUnitRingType := @UnitRing.Pack unitAlgType xclass. -Definition join_finLmodType := @Lmodule.Pack R phR unitAlgType xclass. -Definition join_finLalgType := @Lalgebra.Pack R phR unitAlgType xclass. -Definition join_finAlgType := @Algebra.Pack R phR unitAlgType xclass. -Definition ljoin_finUnitRingType := @UnitRing.Pack lmodType xclass. -Definition fljoin_finUnitRingType := @UnitRing.Pack finLmodType xclass. -Definition njoin_finUnitRingType := @UnitRing.Pack lalgType xclass. -Definition fnjoin_finUnitRingType := @UnitRing.Pack finLalgType xclass. -Definition ajoin_finUnitRingType := @UnitRing.Pack algType xclass. -Definition fajoin_finUnitRingType := @UnitRing.Pack finAlgType xclass. -Definition ujoin_finLmodType := @Lmodule.Pack R phR unitRingType xclass. -Definition ujoin_finLalgType := @Lalgebra.Pack R phR unitRingType xclass. -Definition ujoin_finAlgType := @Algebra.Pack R phR unitRingType xclass. - Definition baseFinGroupType := base_group cT zmodType finType. Definition finGroupType := fin_group baseFinGroupType zmodType. -Definition join_baseFinGroupType := base_group unitAlgType zmodType finType. -Definition join_finGroupType := fin_group join_baseFinGroupType zmodType. + +Definition unitAlg_countType := @Countable.Pack unitAlgType (fin_ xclass). +Definition unitAlg_finType := @Finite.Pack unitAlgType (fin_ xclass). +Definition unitAlg_baseFinGroupType := base_group unitAlgType zmodType finType. +Definition unitAlg_finGroupType := fin_group unitAlg_baseFinGroupType zmodType. +Definition unitAlg_countZmodType := @CountRing.Zmodule.Pack unitAlgType xclass. +Definition unitAlg_finZmodType := @Zmodule.Pack unitAlgType xclass. +Definition unitAlg_countRingType := @CountRing.Ring.Pack unitAlgType xclass. +Definition unitAlg_finRingType := @Ring.Pack unitAlgType xclass. +Definition unitAlg_countUnitRingType := @CountRing.UnitRing.Pack unitAlgType xclass. +Definition unitAlg_finUnitRingType := @UnitRing.Pack unitAlgType xclass. +Definition unitAlg_finLmodType := @Lmodule.Pack R phR unitAlgType xclass. +Definition unitAlg_finLalgType := @Lalgebra.Pack R phR unitAlgType xclass. +Definition unitAlg_finAlgType := @Algebra.Pack R phR unitAlgType xclass. +Definition unitRing_finLmodType := @Lmodule.Pack R phR unitRingType xclass. +Definition unitRing_finLalgType := @Lalgebra.Pack R phR unitRingType xclass. +Definition unitRing_finAlgType := @Algebra.Pack R phR unitRingType xclass. +Definition finUnitRing_lmodType := + @GRing.Lmodule.Pack R phR finUnitRingType xclass. +Definition finUnitRing_finLmodType := + @Lmodule.Pack R phR finUnitRingType xclass. +Definition finUnitRing_lalgType := + @GRing.Lalgebra.Pack R phR finUnitRingType xclass. +Definition finUnitRing_finLalgType := + @Lalgebra.Pack R phR finUnitRingType xclass. +Definition finUnitRing_algType := + @GRing.Algebra.Pack R phR finUnitRingType xclass. +Definition finUnitRing_finAlgType := + @Algebra.Pack R phR finUnitRingType xclass. End ClassDef. @@ -1257,16 +1490,26 @@ Coercion countType : type >-> Countable.type. Canonical countType. Coercion finType : type >-> Finite.type. Canonical finType. +Coercion baseFinGroupType : type >-> FinGroup.base_type. +Canonical baseFinGroupType. +Coercion finGroupType : type >-> FinGroup.type. +Canonical finGroupType. Coercion zmodType : type >-> GRing.Zmodule.type. Canonical zmodType. +Coercion countZmodType : type >-> CountRing.Zmodule.type. +Canonical countZmodType. Coercion finZmodType : type >-> Zmodule.type. Canonical finZmodType. Coercion ringType : type >-> GRing.Ring.type. Canonical ringType. +Coercion countRingType : type >-> CountRing.Ring.type. +Canonical countRingType. Coercion finRingType : type >-> Ring.type. Canonical finRingType. Coercion unitRingType : type >-> GRing.UnitRing.type. Canonical unitRingType. +Coercion countUnitRingType : type >-> CountRing.UnitRing.type. +Canonical countUnitRingType. Coercion finUnitRingType : type >-> UnitRing.type. Canonical finUnitRingType. Coercion lmodType : type >-> GRing.Lmodule.type. @@ -1283,34 +1526,31 @@ Coercion finAlgType : type >-> Algebra.type. Canonical finAlgType. Coercion unitAlgType : type >-> GRing.UnitAlgebra.type. Canonical unitAlgType. -Canonical join_finType. -Canonical join_finZmodType. -Canonical join_finLmodType. -Canonical join_finRingType. -Canonical join_finLalgType. -Canonical join_finAlgType. -Canonical ljoin_finUnitRingType. -Canonical fljoin_finUnitRingType. -Canonical njoin_finUnitRingType. -Canonical fnjoin_finUnitRingType. -Canonical ajoin_finUnitRingType. -Canonical fajoin_finUnitRingType. -Canonical ujoin_finLmodType. -Canonical ujoin_finLalgType. -Canonical ujoin_finAlgType. +Canonical unitAlg_countType. +Canonical unitAlg_finType. +Canonical unitAlg_baseFinGroupType. +Canonical unitAlg_finGroupType. +Canonical unitAlg_countZmodType. +Canonical unitAlg_finZmodType. +Canonical unitAlg_countRingType. +Canonical unitAlg_finRingType. +Canonical unitAlg_countUnitRingType. +Canonical unitAlg_finUnitRingType. +Canonical unitAlg_finLmodType. +Canonical unitAlg_finLalgType. +Canonical unitAlg_finAlgType. +Canonical unitRing_finLmodType. +Canonical unitRing_finLalgType. +Canonical unitRing_finAlgType. +Canonical finUnitRing_lmodType. +Canonical finUnitRing_finLmodType. +Canonical finUnitRing_lalgType. +Canonical finUnitRing_finLalgType. +Canonical finUnitRing_algType. +Canonical finUnitRing_finAlgType. Notation finUnitAlgType R := (type (Phant R)). Notation "[ 'finUnitAlgType' R 'of' T ]" := (do_pack (@pack _ (Phant R)) T) (at level 0, format "[ 'finUnitAlgType' R 'of' T ]") : form_scope. -Canonical baseFinGroupType. -Canonical finGroupType. -Canonical join_baseFinGroupType. -Canonical join_finGroupType. -Section counttype. -Variables (R : GRing.UnitRing.type) (phR : phant R) (T : type phR). -Canonical countZmodType := [countZmodType of T]. -Canonical countRingType := [countRingType of T]. -Canonical countUnitRingType := [countUnitRingType of T]. -End counttype. End Exports. End UnitAlgebra. -- cgit v1.2.3 From 562da0c4beec2525db4867e56867576aaf6c0bd8 Mon Sep 17 00:00:00 2001 From: Cyril Cohen Date: Tue, 2 Apr 2019 16:40:14 +0200 Subject: identifying missing joins --- mathcomp/Make | 1 + mathcomp/test-suite/hierarchy_test.v | 719 +++++++++++++++++++++++++++++++++++ 2 files changed, 720 insertions(+) create mode 100644 mathcomp/test-suite/hierarchy_test.v (limited to 'mathcomp') diff --git a/mathcomp/Make b/mathcomp/Make index 147d5b1..27bf34f 100644 --- a/mathcomp/Make +++ b/mathcomp/Make @@ -87,6 +87,7 @@ ssreflect/ssrnat.v ssreflect/ssrnotations.v ssreflect/ssrmatching.v ssreflect/tuple.v +test-suite/hierarchy_test.v -I . -R . mathcomp diff --git a/mathcomp/test-suite/hierarchy_test.v b/mathcomp/test-suite/hierarchy_test.v new file mode 100644 index 0000000..0085018 --- /dev/null +++ b/mathcomp/test-suite/hierarchy_test.v @@ -0,0 +1,719 @@ +(** Generated by etc/utils/hierarchy_test.py *) +From mathcomp Require Import all. +Local Notation "FinRing.UnitAlgebra.type" := (FinRing.UnitAlgebra.type _). +Local Notation "GRing.Lalgebra.type" := (GRing.Lalgebra.type _). +Local Notation "FinRing.Lalgebra.type" := (FinRing.Lalgebra.type _). +Local Notation "FinRing.Algebra.type" := (FinRing.Algebra.type _). +Local Notation "FieldExt.type" := (FieldExt.type _). +Local Notation "GRing.UnitAlgebra.type" := (GRing.UnitAlgebra.type _). +Local Notation "FinRing.Lmodule.type" := (FinRing.Lmodule.type _). +Local Notation "GRing.Algebra.type" := (GRing.Algebra.type _). +Local Notation "SplittingField.type" := (SplittingField.type _). +Local Notation "Falgebra.type" := (Falgebra.type _). +Local Notation "GRing.Lmodule.type" := (GRing.Lmodule.type _). +Local Notation "Vector.type" := (Vector.type _). + +Check erefl : (_ : CountRing.ComRing.type) = (_ : FinGroup.type) :> Type. +Check erefl : (_ : FieldExt.type) = (_ : SplittingField.type) :> Type. +Check erefl : (_ : Equality.type) = (_ : GRing.Field.type) :> Type. +Check erefl : (_ : Num.NumField.type) = (_ : Num.RealClosedField.type) :> Type. +Check erefl : (_ : FinRing.Lalgebra.type) = (_ : FinRing.Ring.type) :> Type. +Check erefl : (_ : Choice.type) = (_ : Num.ArchimedeanField.type) :> Type. +Check erefl : (_ : CountRing.Zmodule.type) = (_ : GRing.IntegralDomain.type) :> Type. +Check erefl : (_ : CountRing.IntegralDomain.type) = (_ : Countable.type) :> Type. +Check erefl : (_ : Num.NumField.type) = (_ : Num.RealDomain.type) :> Type. +Check erefl : (_ : Choice.type) = (_ : FinRing.Lmodule.type) :> Type. +Check erefl : (_ : GRing.Lmodule.type) = (_ : GRing.Zmodule.type) :> Type. +Check erefl : (_ : CountRing.Field.type) = (_ : Countable.type) :> Type. +Check erefl : (_ : FinRing.Lalgebra.type) = (_ : Finite.type) :> Type. +Check erefl : (_ : CountRing.Zmodule.type) = (_ : GRing.Zmodule.type) :> Type. +Check erefl : (_ : FinRing.ComRing.type) = (_ : GRing.IntegralDomain.type) :> Type. +Check erefl : (_ : Countable.type) = (_ : FinRing.Lmodule.type) :> Type. +Check erefl : (_ : FinRing.IntegralDomain.type) = (_ : GRing.Ring.type) :> Type. +Check erefl : (_ : GRing.Algebra.type) = (_ : GRing.Lalgebra.type) :> Type. +Check erefl : (_ : CountRing.Ring.type) = (_ : GRing.IntegralDomain.type) :> Type. +Check erefl : (_ : CountRing.IntegralDomain.type) = (_ : FinRing.Field.type) :> Type. +Check erefl : (_ : GRing.Ring.type) = (_ : Num.NumDomain.type) :> Type. +Check erefl : (_ : CountRing.ComUnitRing.type) = (_ : FinRing.UnitRing.type) :> Type. +Check erefl : (_ : Equality.type) = (_ : Num.ClosedField.type) :> Type. +Check erefl : (_ : FinRing.Algebra.type) = (_ : GRing.UnitAlgebra.type) :> Type. +Check erefl : (_ : GRing.UnitAlgebra.type) = (_ : GRing.Zmodule.type) :> Type. +Check erefl : (_ : CountRing.ComRing.type) = (_ : FinRing.Ring.type) :> Type. +Check erefl : (_ : FinRing.ComUnitRing.type) = (_ : GRing.IntegralDomain.type) :> Type. +Check erefl : (_ : FinGroup.type) = (_ : FinRing.Lalgebra.type) :> Type. +Check erefl : (_ : GRing.ClosedField.type) = (_ : GRing.Zmodule.type) :> Type. +Check erefl : (_ : CountRing.ComRing.type) = (_ : GRing.Ring.type) :> Type. +Check erefl : (_ : GRing.ComRing.type) = (_ : Num.ArchimedeanField.type) :> Type. +Check erefl : (_ : GRing.Field.type) = (_ : Num.ArchimedeanField.type) :> Type. +Check erefl : (_ : GRing.Lalgebra.type) = (_ : Vector.type) :> Type. +Check erefl : (_ : Choice.type) = (_ : Num.ClosedField.type) :> Type. +Check erefl : (_ : Countable.type) = (_ : FinGroup.type) :> Type. +Check erefl : (_ : GRing.UnitRing.type) = (_ : Num.RealField.type) :> Type. +Check erefl : (_ : CountRing.ComUnitRing.type) = (_ : Finite.type) :> Type. +Check erefl : (_ : FinRing.IntegralDomain.type) = (_ : GRing.Zmodule.type) :> Type. +Check erefl : (_ : FinRing.ComUnitRing.type) = (_ : Finite.type) :> Type. +Check erefl : (_ : GRing.Ring.type) = (_ : Num.RealDomain.type) :> Type. +Check erefl : (_ : GRing.IntegralDomain.type) = (_ : GRing.Lmodule.type) :> Type. +Check erefl : (_ : Equality.type) = (_ : GRing.DecidableField.type) :> Type. +Check erefl : (_ : Countable.type) = (_ : FinRing.Field.type) :> Type. +Check erefl : (_ : FieldExt.type) = (_ : GRing.UnitRing.type) :> Type. +Check erefl : (_ : CountRing.Field.type) = (_ : FinRing.ComUnitRing.type) :> Type. +Check erefl : (_ : FinRing.Zmodule.type) = (_ : GRing.Zmodule.type) :> Type. +Check erefl : (_ : CountRing.ComRing.type) = (_ : Equality.type) :> Type. +Check erefl : (_ : FinGroup.type) = (_ : GRing.ComUnitRing.type) :> Type. +Check erefl : (_ : Choice.type) = (_ : CountRing.UnitRing.type) :> Type. +Check erefl : (_ : FinGroup.type) = (_ : GRing.Field.type) :> Type. +Check erefl : (_ : GRing.ComUnitRing.type) = (_ : GRing.Zmodule.type) :> Type. +Check erefl : (_ : GRing.IntegralDomain.type) = (_ : Num.NumDomain.type) :> Type. +Check erefl : (_ : Equality.type) = (_ : FinRing.UnitRing.type) :> Type. +Check erefl : (_ : FinRing.ComRing.type) = (_ : Finite.type) :> Type. +Check erefl : (_ : Countable.type) = (_ : GRing.ComUnitRing.type) :> Type. +Check erefl : (_ : FinRing.UnitRing.type) = (_ : GRing.ComUnitRing.type) :> Type. +Check erefl : (_ : CountRing.ComUnitRing.type) = (_ : CountRing.DecidableField.type) :> Type. +Check erefl : (_ : FinRing.ComRing.type) = (_ : FinRing.IntegralDomain.type) :> Type. +Check erefl : (_ : CountRing.Zmodule.type) = (_ : Countable.type) :> Type. +Check erefl : (_ : CountRing.Ring.type) = (_ : GRing.Ring.type) :> Type. +Check erefl : (_ : CountRing.Field.type) = (_ : FinRing.IntegralDomain.type) :> Type. +Check erefl : (_ : FinRing.ComRing.type) = (_ : FinRing.UnitRing.type) :> Type. +Check erefl : (_ : CountRing.Zmodule.type) = (_ : Finite.type) :> Type. +Check erefl : (_ : GRing.Lmodule.type) = (_ : GRing.UnitAlgebra.type) :> Type. +Check erefl : (_ : Finite.type) = (_ : GRing.Ring.type) :> Type. +Check erefl : (_ : CountRing.UnitRing.type) = (_ : GRing.ClosedField.type) :> Type. +Check erefl : (_ : Finite.type) = (_ : GRing.IntegralDomain.type) :> Type. +Check erefl : (_ : CountRing.UnitRing.type) = (_ : GRing.Ring.type) :> Type. +Check erefl : (_ : CountRing.UnitRing.type) = (_ : Equality.type) :> Type. +Check erefl : (_ : FinGroup.type) = (_ : FinRing.Field.type) :> Type. +Check erefl : (_ : Choice.type) = (_ : Num.RealField.type) :> Type. +Check erefl : (_ : GRing.ComRing.type) = (_ : GRing.Lalgebra.type) :> Type. +Check erefl : (_ : FinRing.Lmodule.type) = (_ : GRing.Ring.type) :> Type. +Check erefl : (_ : Choice.type) = (_ : FieldExt.type) :> Type. +Check erefl : (_ : CountRing.ComRing.type) = (_ : CountRing.DecidableField.type) :> Type. +Check erefl : (_ : Equality.type) = (_ : FieldExt.type) :> Type. +Check erefl : (_ : GRing.ComRing.type) = (_ : GRing.Lmodule.type) :> Type. +Check erefl : (_ : GRing.DecidableField.type) = (_ : Num.NumDomain.type) :> Type. +Check erefl : (_ : GRing.DecidableField.type) = (_ : GRing.Field.type) :> Type. +Check erefl : (_ : CountRing.UnitRing.type) = (_ : Countable.type) :> Type. +Check erefl : (_ : FinRing.Lmodule.type) = (_ : FinRing.Ring.type) :> Type. +Check erefl : (_ : FieldExt.type) = (_ : GRing.IntegralDomain.type) :> Type. +Check erefl : (_ : GRing.UnitAlgebra.type) = (_ : Vector.type) :> Type. +Check erefl : (_ : GRing.UnitRing.type) = (_ : Vector.type) :> Type. +Check erefl : (_ : FinRing.Lalgebra.type) = (_ : FinRing.Lmodule.type) :> Type. +Check erefl : (_ : CountRing.Zmodule.type) = (_ : FinRing.IntegralDomain.type) :> Type. +Check erefl : (_ : CountRing.UnitRing.type) = (_ : FinRing.Ring.type) :> Type. +Check erefl : (_ : GRing.ComUnitRing.type) = (_ : Num.RealClosedField.type) :> Type. +Check erefl : (_ : CountRing.Field.type) = (_ : FinRing.ComRing.type) :> Type. +Check erefl : (_ : GRing.IntegralDomain.type) = (_ : Vector.type) :> Type. +Check erefl : (_ : FinRing.Algebra.type) = (_ : GRing.Lmodule.type) :> Type. +Check erefl : (_ : GRing.Field.type) = (_ : GRing.UnitAlgebra.type) :> Type. +Check erefl : (_ : FinRing.UnitAlgebra.type) = (_ : Finite.type) :> Type. +Check erefl : (_ : FinRing.ComUnitRing.type) = (_ : GRing.Zmodule.type) :> Type. +Check erefl : (_ : CountRing.ClosedField.type) = (_ : CountRing.DecidableField.type) :> Type. +Check erefl : (_ : GRing.IntegralDomain.type) = (_ : GRing.Lalgebra.type) :> Type. +Check erefl : (_ : CountRing.ComUnitRing.type) = (_ : Equality.type) :> Type. +Check erefl : (_ : FinRing.Ring.type) = (_ : GRing.Field.type) :> Type. +Check erefl : (_ : GRing.ComRing.type) = (_ : GRing.Ring.type) :> Type. +Check erefl : (_ : GRing.Field.type) = (_ : GRing.UnitRing.type) :> Type. +Check erefl : (_ : CountRing.ComRing.type) = (_ : GRing.IntegralDomain.type) :> Type. +Check erefl : (_ : FieldExt.type) = (_ : GRing.UnitAlgebra.type) :> Type. +Check erefl : (_ : Equality.type) = (_ : GRing.Zmodule.type) :> Type. +Check erefl : (_ : FinGroup.type) = (_ : GRing.Zmodule.type) :> Type. +Check erefl : (_ : Num.RealClosedField.type) = (_ : Num.RealField.type) :> Type. +Check erefl : (_ : CountRing.ClosedField.type) = (_ : CountRing.Ring.type) :> Type. +Check erefl : (_ : CountRing.UnitRing.type) = (_ : GRing.UnitAlgebra.type) :> Type. +Check erefl : (_ : CountRing.ComRing.type) = (_ : CountRing.UnitRing.type) :> Type. +Check erefl : (_ : Equality.type) = (_ : FinRing.Ring.type) :> Type. +Check erefl : (_ : FinGroup.type) = (_ : FinRing.Ring.type) :> Type. +Check erefl : (_ : CountRing.ComRing.type) = (_ : CountRing.Ring.type) :> Type. +Check erefl : (_ : Countable.type) = (_ : FinRing.IntegralDomain.type) :> Type. +Check erefl : (_ : Choice.type) = (_ : GRing.DecidableField.type) :> Type. +Check erefl : (_ : CountRing.ComRing.type) = (_ : FinRing.ComRing.type) :> Type. +Check erefl : (_ : GRing.Ring.type) = (_ : GRing.Zmodule.type) :> Type. +Check erefl : (_ : Num.RealDomain.type) = (_ : Num.RealField.type) :> Type. +Check erefl : (_ : CountRing.IntegralDomain.type) = (_ : GRing.DecidableField.type) :> Type. +Check erefl : (_ : FinRing.ComRing.type) = (_ : GRing.Field.type) :> Type. +Check erefl : (_ : CountRing.ClosedField.type) = (_ : GRing.ComRing.type) :> Type. +Check erefl : (_ : GRing.DecidableField.type) = (_ : GRing.Zmodule.type) :> Type. +Check erefl : (_ : FinRing.UnitRing.type) = (_ : GRing.UnitRing.type) :> Type. +Check erefl : (_ : CountRing.UnitRing.type) = (_ : FinGroup.type) :> Type. +Check erefl : (_ : FinRing.Ring.type) = (_ : FinRing.UnitAlgebra.type) :> Type. +Check erefl : (_ : GRing.Algebra.type) = (_ : GRing.Lmodule.type) :> Type. +Check erefl : (_ : Choice.type) = (_ : FinRing.IntegralDomain.type) :> Type. +Check erefl : (_ : CountRing.Zmodule.type) = (_ : FinRing.ComRing.type) :> Type. +Check erefl : (_ : Falgebra.type) = (_ : GRing.Ring.type) :> Type. +Check erefl : (_ : Choice.type) = (_ : CountRing.ClosedField.type) :> Type. +Check erefl : (_ : Finite.type) = (_ : GRing.ComRing.type) :> Type. +Check erefl : (_ : GRing.ClosedField.type) = (_ : GRing.ComUnitRing.type) :> Type. +Check erefl : (_ : CountRing.Ring.type) = (_ : Equality.type) :> Type. +Check erefl : (_ : Falgebra.type) = (_ : GRing.Field.type) :> Type. +Check erefl : (_ : CountRing.DecidableField.type) = (_ : Equality.type) :> Type. +Check erefl : (_ : Countable.type) = (_ : GRing.Lmodule.type) :> Type. +Check erefl : (_ : CountRing.Ring.type) = (_ : Finite.type) :> Type. +Check erefl : (_ : FinRing.Field.type) = (_ : Finite.type) :> Type. +Check erefl : (_ : CountRing.Ring.type) = (_ : FinRing.UnitAlgebra.type) :> Type. +Check erefl : (_ : GRing.ComUnitRing.type) = (_ : Num.ClosedField.type) :> Type. +Check erefl : (_ : CountRing.Zmodule.type) = (_ : FinRing.Zmodule.type) :> Type. +Check erefl : (_ : CountRing.UnitRing.type) = (_ : Finite.type) :> Type. +Check erefl : (_ : Choice.type) = (_ : CountRing.DecidableField.type) :> Type. +Check erefl : (_ : Falgebra.type) = (_ : GRing.Algebra.type) :> Type. +Check erefl : (_ : CountRing.DecidableField.type) = (_ : GRing.ComRing.type) :> Type. +Check erefl : (_ : CountRing.Ring.type) = (_ : GRing.ComRing.type) :> Type. +Check erefl : (_ : FinRing.Lmodule.type) = (_ : FinRing.Zmodule.type) :> Type. +Check erefl : (_ : FinRing.ComUnitRing.type) = (_ : FinRing.IntegralDomain.type) :> Type. +Check erefl : (_ : CountRing.DecidableField.type) = (_ : CountRing.IntegralDomain.type) :> Type. +Check erefl : (_ : Countable.type) = (_ : GRing.UnitRing.type) :> Type. +Check erefl : (_ : FinRing.Lmodule.type) = (_ : Finite.type) :> Type. +Check erefl : (_ : CountRing.IntegralDomain.type) = (_ : FinRing.IntegralDomain.type) :> Type. +Check erefl : (_ : CountRing.Field.type) = (_ : FinRing.Ring.type) :> Type. +Check erefl : (_ : CountRing.Ring.type) = (_ : FinRing.ComRing.type) :> Type. +Check erefl : (_ : Choice.type) = (_ : GRing.ComRing.type) :> Type. +Check erefl : (_ : GRing.ComRing.type) = (_ : Num.NumField.type) :> Type. +Check erefl : (_ : CountRing.IntegralDomain.type) = (_ : GRing.ComUnitRing.type) :> Type. +Check erefl : (_ : FieldExt.type) = (_ : GRing.ComUnitRing.type) :> Type. +Check erefl : (_ : Choice.type) = (_ : CountRing.ComRing.type) :> Type. +Check erefl : (_ : GRing.Field.type) = (_ : GRing.Zmodule.type) :> Type. +Check erefl : (_ : Choice.type) = (_ : GRing.Field.type) :> Type. +Check erefl : (_ : FinRing.Field.type) = (_ : FinRing.Zmodule.type) :> Type. +Check erefl : (_ : FinRing.ComUnitRing.type) = (_ : FinRing.Zmodule.type) :> Type. +Check erefl : (_ : GRing.Ring.type) = (_ : Num.RealField.type) :> Type. +Check erefl : (_ : FieldExt.type) = (_ : GRing.Zmodule.type) :> Type. +Check erefl : (_ : Equality.type) = (_ : GRing.UnitAlgebra.type) :> Type. +Check erefl : (_ : FinRing.UnitAlgebra.type) = (_ : GRing.Ring.type) :> Type. +Check erefl : (_ : FinRing.IntegralDomain.type) = (_ : FinRing.UnitRing.type) :> Type. +Check erefl : (_ : GRing.UnitRing.type) = (_ : SplittingField.type) :> Type. +Check erefl : (_ : CountRing.IntegralDomain.type) = (_ : GRing.Zmodule.type) :> Type. +Check erefl : (_ : FinGroup.type) = (_ : FinRing.Algebra.type) :> Type. +Check erefl : (_ : CountRing.Ring.type) = (_ : CountRing.UnitRing.type) :> Type. +Check erefl : (_ : Falgebra.type) = (_ : SplittingField.type) :> Type. +Check erefl : (_ : GRing.Lalgebra.type) = (_ : GRing.UnitAlgebra.type) :> Type. +Check erefl : (_ : FieldExt.type) = (_ : GRing.Algebra.type) :> Type. +Check erefl : (_ : CountRing.ClosedField.type) = (_ : CountRing.ComRing.type) :> Type. +Check erefl : (_ : CountRing.ComUnitRing.type) = (_ : FinRing.ComRing.type) :> Type. +Check erefl : (_ : GRing.DecidableField.type) = (_ : GRing.UnitRing.type) :> Type. +Check erefl : (_ : CountRing.Field.type) = (_ : GRing.ComRing.type) :> Type. +Check erefl : (_ : CountRing.IntegralDomain.type) = (_ : FinRing.Ring.type) :> Type. +Check erefl : (_ : Num.NumDomain.type) = (_ : Num.RealField.type) :> Type. +Check erefl : (_ : FinRing.Lalgebra.type) = (_ : GRing.Zmodule.type) :> Type. +Check erefl : (_ : CountRing.ClosedField.type) = (_ : Equality.type) :> Type. +Check erefl : (_ : Countable.type) = (_ : GRing.ClosedField.type) :> Type. +Check erefl : (_ : CountRing.ClosedField.type) = (_ : GRing.Ring.type) :> Type. +Check erefl : (_ : CountRing.Zmodule.type) = (_ : GRing.UnitAlgebra.type) :> Type. +Check erefl : (_ : FinRing.UnitRing.type) = (_ : GRing.Ring.type) :> Type. +Check erefl : (_ : Finite.type) = (_ : GRing.Lmodule.type) :> Type. +Check erefl : (_ : GRing.ComUnitRing.type) = (_ : Vector.type) :> Type. +Check erefl : (_ : GRing.ClosedField.type) = (_ : GRing.DecidableField.type) :> Type. +Check erefl : (_ : FinRing.ComRing.type) = (_ : GRing.ComUnitRing.type) :> Type. +Check erefl : (_ : FinRing.ComRing.type) = (_ : FinRing.Field.type) :> Type. +Check erefl : (_ : FinRing.Zmodule.type) = (_ : GRing.UnitAlgebra.type) :> Type. +Check erefl : (_ : CountRing.IntegralDomain.type) = (_ : Equality.type) :> Type. +Check erefl : (_ : Equality.type) = (_ : Num.RealField.type) :> Type. +Check erefl : (_ : Num.ClosedField.type) = (_ : Num.NumField.type) :> Type. +Check erefl : (_ : Num.NumDomain.type) = (_ : Num.RealDomain.type) :> Type. +Check erefl : (_ : FinRing.Field.type) = (_ : GRing.Ring.type) :> Type. +Check erefl : (_ : CountRing.ComRing.type) = (_ : GRing.DecidableField.type) :> Type. +Check erefl : (_ : FinRing.Ring.type) = (_ : GRing.Lmodule.type) :> Type. +Check erefl : (_ : CountRing.IntegralDomain.type) = (_ : GRing.Ring.type) :> Type. +Check erefl : (_ : FinRing.IntegralDomain.type) = (_ : GRing.Field.type) :> Type. +Check erefl : (_ : CountRing.ComRing.type) = (_ : GRing.ComUnitRing.type) :> Type. +Check erefl : (_ : GRing.Lmodule.type) = (_ : SplittingField.type) :> Type. +Check erefl : (_ : Choice.type) = (_ : FinRing.Field.type) :> Type. +Check erefl : (_ : Falgebra.type) = (_ : GRing.Zmodule.type) :> Type. +Check erefl : (_ : GRing.ComRing.type) = (_ : GRing.DecidableField.type) :> Type. +Check erefl : (_ : CountRing.ComUnitRing.type) = (_ : CountRing.Zmodule.type) :> Type. +Check erefl : (_ : FinRing.Lmodule.type) = (_ : GRing.Zmodule.type) :> Type. +Check erefl : (_ : FinRing.ComUnitRing.type) = (_ : GRing.UnitRing.type) :> Type. +Check erefl : (_ : CountRing.ClosedField.type) = (_ : CountRing.UnitRing.type) :> Type. +Check erefl : (_ : FinRing.Field.type) = (_ : GRing.UnitRing.type) :> Type. +Check erefl : (_ : GRing.Zmodule.type) = (_ : SplittingField.type) :> Type. +Check erefl : (_ : FinRing.Algebra.type) = (_ : GRing.UnitRing.type) :> Type. +Check erefl : (_ : Equality.type) = (_ : FinRing.Zmodule.type) :> Type. +Check erefl : (_ : GRing.UnitRing.type) = (_ : GRing.Zmodule.type) :> Type. +Check erefl : (_ : Equality.type) = (_ : FinRing.Algebra.type) :> Type. +Check erefl : (_ : GRing.Zmodule.type) = (_ : Num.RealClosedField.type) :> Type. +Check erefl : (_ : FinRing.IntegralDomain.type) = (_ : GRing.UnitRing.type) :> Type. +Check erefl : (_ : GRing.Lalgebra.type) = (_ : GRing.UnitRing.type) :> Type. +Check erefl : (_ : GRing.Ring.type) = (_ : Num.RealClosedField.type) :> Type. +Check erefl : (_ : CountRing.Ring.type) = (_ : FinRing.Field.type) :> Type. +Check erefl : (_ : CountRing.IntegralDomain.type) = (_ : GRing.IntegralDomain.type) :> Type. +Check erefl : (_ : GRing.Ring.type) = (_ : GRing.UnitRing.type) :> Type. +Check erefl : (_ : FinRing.Zmodule.type) = (_ : GRing.Lalgebra.type) :> Type. +Check erefl : (_ : GRing.Field.type) = (_ : Num.ClosedField.type) :> Type. +Check erefl : (_ : CountRing.ComRing.type) = (_ : FinRing.Zmodule.type) :> Type. +Check erefl : (_ : FinRing.Field.type) = (_ : GRing.ComRing.type) :> Type. +Check erefl : (_ : GRing.ComRing.type) = (_ : GRing.Field.type) :> Type. +Check erefl : (_ : Equality.type) = (_ : FinRing.Lalgebra.type) :> Type. +Check erefl : (_ : Num.ArchimedeanField.type) = (_ : Num.NumField.type) :> Type. +Check erefl : (_ : FinRing.Zmodule.type) = (_ : GRing.ComUnitRing.type) :> Type. +Check erefl : (_ : Equality.type) = (_ : Falgebra.type) :> Type. +Check erefl : (_ : GRing.Zmodule.type) = (_ : Num.RealDomain.type) :> Type. +Check erefl : (_ : Choice.type) = (_ : Num.NumDomain.type) :> Type. +Check erefl : (_ : CountRing.ComUnitRing.type) = (_ : FinRing.Zmodule.type) :> Type. +Check erefl : (_ : FinRing.Lmodule.type) = (_ : GRing.Algebra.type) :> Type. +Check erefl : (_ : Choice.type) = (_ : GRing.Algebra.type) :> Type. +Check erefl : (_ : FinRing.Lmodule.type) = (_ : FinRing.UnitAlgebra.type) :> Type. +Check erefl : (_ : FinRing.UnitRing.type) = (_ : GRing.IntegralDomain.type) :> Type. +Check erefl : (_ : Num.ArchimedeanField.type) = (_ : Num.RealDomain.type) :> Type. +Check erefl : (_ : CountRing.UnitRing.type) = (_ : GRing.DecidableField.type) :> Type. +Check erefl : (_ : FinRing.Zmodule.type) = (_ : GRing.Algebra.type) :> Type. +Check erefl : (_ : GRing.Lmodule.type) = (_ : GRing.UnitRing.type) :> Type. +Check erefl : (_ : CountRing.ComUnitRing.type) = (_ : GRing.UnitRing.type) :> Type. +Check erefl : (_ : FinGroup.type) = (_ : GRing.Lalgebra.type) :> Type. +Check erefl : (_ : Equality.type) = (_ : FinRing.Lmodule.type) :> Type. +Check erefl : (_ : Equality.type) = (_ : FinRing.ComUnitRing.type) :> Type. +Check erefl : (_ : CountRing.IntegralDomain.type) = (_ : CountRing.Ring.type) :> Type. +Check erefl : (_ : GRing.UnitAlgebra.type) = (_ : SplittingField.type) :> Type. +Check erefl : (_ : Countable.type) = (_ : GRing.Zmodule.type) :> Type. +Check erefl : (_ : Countable.type) = (_ : GRing.DecidableField.type) :> Type. +Check erefl : (_ : FieldExt.type) = (_ : GRing.Field.type) :> Type. +Check erefl : (_ : CountRing.Ring.type) = (_ : GRing.Zmodule.type) :> Type. +Check erefl : (_ : FinRing.Field.type) = (_ : GRing.ComUnitRing.type) :> Type. +Check erefl : (_ : CountRing.IntegralDomain.type) = (_ : FinRing.ComUnitRing.type) :> Type. +Check erefl : (_ : CountRing.UnitRing.type) = (_ : GRing.Zmodule.type) :> Type. +Check erefl : (_ : Equality.type) = (_ : GRing.Lalgebra.type) :> Type. +Check erefl : (_ : GRing.Algebra.type) = (_ : SplittingField.type) :> Type. +Check erefl : (_ : FinGroup.type) = (_ : GRing.Ring.type) :> Type. +Check erefl : (_ : FinRing.Algebra.type) = (_ : GRing.Zmodule.type) :> Type. +Check erefl : (_ : Choice.type) = (_ : GRing.ComUnitRing.type) :> Type. +Check erefl : (_ : CountRing.Ring.type) = (_ : FinRing.Ring.type) :> Type. +Check erefl : (_ : GRing.ComUnitRing.type) = (_ : GRing.Lmodule.type) :> Type. +Check erefl : (_ : FinRing.Ring.type) = (_ : GRing.Ring.type) :> Type. +Check erefl : (_ : CountRing.ComRing.type) = (_ : GRing.UnitRing.type) :> Type. +Check erefl : (_ : FinRing.Zmodule.type) = (_ : GRing.ComRing.type) :> Type. +Check erefl : (_ : FinRing.UnitRing.type) = (_ : GRing.Lmodule.type) :> Type. +Check erefl : (_ : FinRing.IntegralDomain.type) = (_ : GRing.ComUnitRing.type) :> Type. +Check erefl : (_ : GRing.ComRing.type) = (_ : Num.NumDomain.type) :> Type. +Check erefl : (_ : CountRing.ClosedField.type) = (_ : GRing.Zmodule.type) :> Type. +Check erefl : (_ : CountRing.ComRing.type) = (_ : FinRing.Field.type) :> Type. +Check erefl : (_ : FinRing.IntegralDomain.type) = (_ : FinRing.Zmodule.type) :> Type. +Check erefl : (_ : FinRing.Ring.type) = (_ : GRing.Algebra.type) :> Type. +Check erefl : (_ : GRing.IntegralDomain.type) = (_ : GRing.UnitRing.type) :> Type. +Check erefl : (_ : FinRing.ComUnitRing.type) = (_ : GRing.ComUnitRing.type) :> Type. +Check erefl : (_ : CountRing.Field.type) = (_ : FinRing.UnitRing.type) :> Type. +Check erefl : (_ : Countable.type) = (_ : FinRing.ComRing.type) :> Type. +Check erefl : (_ : GRing.Field.type) = (_ : Vector.type) :> Type. +Check erefl : (_ : CountRing.DecidableField.type) = (_ : GRing.ComUnitRing.type) :> Type. +Check erefl : (_ : GRing.Zmodule.type) = (_ : Num.RealField.type) :> Type. +Check erefl : (_ : GRing.Ring.type) = (_ : Num.NumField.type) :> Type. +Check erefl : (_ : GRing.ClosedField.type) = (_ : GRing.ComRing.type) :> Type. +Check erefl : (_ : Equality.type) = (_ : GRing.UnitRing.type) :> Type. +Check erefl : (_ : Finite.type) = (_ : GRing.Field.type) :> Type. +Check erefl : (_ : CountRing.Zmodule.type) = (_ : FinRing.Field.type) :> Type. +Check erefl : (_ : FinRing.Algebra.type) = (_ : FinRing.Zmodule.type) :> Type. +Check erefl : (_ : FinRing.Field.type) = (_ : GRing.IntegralDomain.type) :> Type. +Check erefl : (_ : CountRing.Ring.type) = (_ : GRing.ClosedField.type) :> Type. +Check erefl : (_ : Num.NumField.type) = (_ : Num.RealField.type) :> Type. +Check erefl : (_ : GRing.Ring.type) = (_ : Num.ArchimedeanField.type) :> Type. +Check erefl : (_ : GRing.UnitRing.type) = (_ : Num.RealDomain.type) :> Type. +Check erefl : (_ : FinGroup.type) = (_ : GRing.ComRing.type) :> Type. +Check erefl : (_ : Equality.type) = (_ : FinGroup.type) :> Type. +Check erefl : (_ : FinRing.Ring.type) = (_ : GRing.ComUnitRing.type) :> Type. +Check erefl : (_ : GRing.Ring.type) = (_ : Num.ClosedField.type) :> Type. +Check erefl : (_ : CountRing.Zmodule.type) = (_ : FinGroup.type) :> Type. +Check erefl : (_ : Equality.type) = (_ : FinRing.ComRing.type) :> Type. +Check erefl : (_ : FinRing.ComUnitRing.type) = (_ : GRing.ComRing.type) :> Type. +Check erefl : (_ : GRing.Field.type) = (_ : Num.NumField.type) :> Type. +Check erefl : (_ : FinRing.Zmodule.type) = (_ : Finite.type) :> Type. +Check erefl : (_ : GRing.Zmodule.type) = (_ : Num.ClosedField.type) :> Type. +Check erefl : (_ : FinRing.Ring.type) = (_ : GRing.Zmodule.type) :> Type. +Check erefl : (_ : FinRing.Ring.type) = (_ : GRing.ComRing.type) :> Type. +Check erefl : (_ : CountRing.Ring.type) = (_ : GRing.DecidableField.type) :> Type. +Check erefl : (_ : Choice.type) = (_ : Equality.type) :> Type. +Check erefl : (_ : Falgebra.type) = (_ : FieldExt.type) :> Type. +Check erefl : (_ : CountRing.Zmodule.type) = (_ : FinRing.UnitRing.type) :> Type. +Check erefl : (_ : CountRing.Zmodule.type) = (_ : GRing.ClosedField.type) :> Type. +Check erefl : (_ : GRing.Lmodule.type) = (_ : GRing.Ring.type) :> Type. +Check erefl : (_ : GRing.ComRing.type) = (_ : GRing.Zmodule.type) :> Type. +Check erefl : (_ : FinRing.UnitRing.type) = (_ : GRing.Field.type) :> Type. +Check erefl : (_ : GRing.Zmodule.type) = (_ : Num.NumField.type) :> Type. +Check erefl : (_ : Countable.type) = (_ : FinRing.ComUnitRing.type) :> Type. +Check erefl : (_ : CountRing.Field.type) = (_ : GRing.ComUnitRing.type) :> Type. +Check erefl : (_ : CountRing.Field.type) = (_ : CountRing.Ring.type) :> Type. +Check erefl : (_ : FieldExt.type) = (_ : GRing.Lalgebra.type) :> Type. +Check erefl : (_ : Equality.type) = (_ : GRing.Lmodule.type) :> Type. +Check erefl : (_ : FinGroup.type) = (_ : FinRing.UnitRing.type) :> Type. +Check erefl : (_ : GRing.ComUnitRing.type) = (_ : SplittingField.type) :> Type. +Check erefl : (_ : CountRing.ClosedField.type) = (_ : GRing.DecidableField.type) :> Type. +Check erefl : (_ : CountRing.ComUnitRing.type) = (_ : FinGroup.type) :> Type. +Check erefl : (_ : CountRing.Field.type) = (_ : FinGroup.type) :> Type. +Check erefl : (_ : CountRing.ComRing.type) = (_ : CountRing.Zmodule.type) :> Type. +Check erefl : (_ : FinRing.Algebra.type) = (_ : FinRing.UnitRing.type) :> Type. +Check erefl : (_ : FinRing.Lmodule.type) = (_ : FinRing.UnitRing.type) :> Type. +Check erefl : (_ : Choice.type) = (_ : GRing.Lmodule.type) :> Type. +Check erefl : (_ : GRing.Field.type) = (_ : Num.RealField.type) :> Type. +Check erefl : (_ : GRing.IntegralDomain.type) = (_ : GRing.Ring.type) :> Type. +Check erefl : (_ : GRing.UnitRing.type) = (_ : Num.RealClosedField.type) :> Type. +Check erefl : (_ : Finite.type) = (_ : GRing.UnitAlgebra.type) :> Type. +Check erefl : (_ : Countable.type) = (_ : GRing.Field.type) :> Type. +Check erefl : (_ : GRing.UnitRing.type) = (_ : Num.ArchimedeanField.type) :> Type. +Check erefl : (_ : FinRing.ComRing.type) = (_ : FinRing.Ring.type) :> Type. +Check erefl : (_ : FinRing.Algebra.type) = (_ : Finite.type) :> Type. +Check erefl : (_ : GRing.ComUnitRing.type) = (_ : Num.NumDomain.type) :> Type. +Check erefl : (_ : CountRing.IntegralDomain.type) = (_ : GRing.Field.type) :> Type. +Check erefl : (_ : GRing.IntegralDomain.type) = (_ : Num.ArchimedeanField.type) :> Type. +Check erefl : (_ : Choice.type) = (_ : CountRing.Ring.type) :> Type. +Check erefl : (_ : CountRing.IntegralDomain.type) = (_ : GRing.UnitRing.type) :> Type. +Check erefl : (_ : Finite.type) = (_ : GRing.UnitRing.type) :> Type. +Check erefl : (_ : CountRing.ComUnitRing.type) = (_ : GRing.ComUnitRing.type) :> Type. +Check erefl : (_ : Equality.type) = (_ : GRing.IntegralDomain.type) :> Type. +Check erefl : (_ : FinRing.Zmodule.type) = (_ : GRing.Lmodule.type) :> Type. +Check erefl : (_ : GRing.Algebra.type) = (_ : GRing.UnitRing.type) :> Type. +Check erefl : (_ : CountRing.DecidableField.type) = (_ : CountRing.Ring.type) :> Type. +Check erefl : (_ : GRing.Lalgebra.type) = (_ : SplittingField.type) :> Type. +Check erefl : (_ : CountRing.UnitRing.type) = (_ : GRing.ComRing.type) :> Type. +Check erefl : (_ : CountRing.Zmodule.type) = (_ : GRing.Field.type) :> Type. +Check erefl : (_ : GRing.DecidableField.type) = (_ : Num.NumField.type) :> Type. +Check erefl : (_ : GRing.ComRing.type) = (_ : GRing.UnitAlgebra.type) :> Type. +Check erefl : (_ : GRing.Algebra.type) = (_ : GRing.IntegralDomain.type) :> Type. +Check erefl : (_ : GRing.UnitRing.type) = (_ : Num.ClosedField.type) :> Type. +Check erefl : (_ : Choice.type) = (_ : Finite.type) :> Type. +Check erefl : (_ : FinRing.IntegralDomain.type) = (_ : Finite.type) :> Type. +Check erefl : (_ : FieldExt.type) = (_ : GRing.ComRing.type) :> Type. +Check erefl : (_ : Choice.type) = (_ : Num.RealDomain.type) :> Type. +Check erefl : (_ : CountRing.IntegralDomain.type) = (_ : FinRing.Zmodule.type) :> Type. +Check erefl : (_ : Countable.type) = (_ : FinRing.Zmodule.type) :> Type. +Check erefl : (_ : CountRing.UnitRing.type) = (_ : GRing.IntegralDomain.type) :> Type. +Check erefl : (_ : GRing.Field.type) = (_ : GRing.Ring.type) :> Type. +Check erefl : (_ : CountRing.Field.type) = (_ : GRing.ClosedField.type) :> Type. +Check erefl : (_ : GRing.Field.type) = (_ : GRing.Lmodule.type) :> Type. +Check erefl : (_ : CountRing.Zmodule.type) = (_ : GRing.UnitRing.type) :> Type. +Check erefl : (_ : Choice.type) = (_ : FinRing.UnitAlgebra.type) :> Type. +Check erefl : (_ : Falgebra.type) = (_ : GRing.Lmodule.type) :> Type. +Check erefl : (_ : CountRing.Zmodule.type) = (_ : FinRing.UnitAlgebra.type) :> Type. +Check erefl : (_ : Choice.type) = (_ : GRing.UnitRing.type) :> Type. +Check erefl : (_ : Finite.type) = (_ : GRing.Lalgebra.type) :> Type. +Check erefl : (_ : CountRing.Ring.type) = (_ : GRing.ComUnitRing.type) :> Type. +Check erefl : (_ : GRing.IntegralDomain.type) = (_ : Num.RealField.type) :> Type. +Check erefl : (_ : FinRing.Lalgebra.type) = (_ : GRing.Ring.type) :> Type. +Check erefl : (_ : GRing.ComUnitRing.type) = (_ : Num.NumField.type) :> Type. +Check erefl : (_ : Choice.type) = (_ : Num.NumField.type) :> Type. +Check erefl : (_ : CountRing.Ring.type) = (_ : FinRing.IntegralDomain.type) :> Type. +Check erefl : (_ : CountRing.ComRing.type) = (_ : GRing.ComRing.type) :> Type. +Check erefl : (_ : CountRing.DecidableField.type) = (_ : GRing.ClosedField.type) :> Type. +Check erefl : (_ : SplittingField.type) = (_ : Vector.type) :> Type. +Check erefl : (_ : Finite.type) = (_ : GRing.Algebra.type) :> Type. +Check erefl : (_ : CountRing.ComUnitRing.type) = (_ : GRing.IntegralDomain.type) :> Type. +Check erefl : (_ : CountRing.DecidableField.type) = (_ : GRing.Ring.type) :> Type. +Check erefl : (_ : GRing.Field.type) = (_ : SplittingField.type) :> Type. +Check erefl : (_ : CountRing.ComRing.type) = (_ : FinRing.IntegralDomain.type) :> Type. +Check erefl : (_ : CountRing.Field.type) = (_ : GRing.IntegralDomain.type) :> Type. +Check erefl : (_ : CountRing.Ring.type) = (_ : FinRing.UnitRing.type) :> Type. +Check erefl : (_ : GRing.ComRing.type) = (_ : GRing.IntegralDomain.type) :> Type. +Check erefl : (_ : Countable.type) = (_ : FinRing.Ring.type) :> Type. +Check erefl : (_ : FinRing.UnitRing.type) = (_ : FinRing.Zmodule.type) :> Type. +Check erefl : (_ : FinRing.Ring.type) = (_ : FinRing.Zmodule.type) :> Type. +Check erefl : (_ : Equality.type) = (_ : Num.NumField.type) :> Type. +Check erefl : (_ : GRing.ClosedField.type) = (_ : Num.NumField.type) :> Type. +Check erefl : (_ : GRing.ComRing.type) = (_ : SplittingField.type) :> Type. +Check erefl : (_ : GRing.ClosedField.type) = (_ : Num.NumDomain.type) :> Type. +Check erefl : (_ : GRing.ComRing.type) = (_ : Num.RealDomain.type) :> Type. +Check erefl : (_ : CountRing.ClosedField.type) = (_ : GRing.ComUnitRing.type) :> Type. +Check erefl : (_ : FinRing.UnitAlgebra.type) = (_ : GRing.Lmodule.type) :> Type. +Check erefl : (_ : CountRing.UnitRing.type) = (_ : FinRing.UnitAlgebra.type) :> Type. +Check erefl : (_ : GRing.ComUnitRing.type) = (_ : Num.RealField.type) :> Type. +Check erefl : (_ : Num.RealClosedField.type) = (_ : Num.RealDomain.type) :> Type. +Check erefl : (_ : Finite.type) = (_ : GRing.ComUnitRing.type) :> Type. +Check erefl : (_ : Equality.type) = (_ : FinRing.UnitAlgebra.type) :> Type. +Check erefl : (_ : GRing.IntegralDomain.type) = (_ : Num.ClosedField.type) :> Type. +Check erefl : (_ : FinGroup.type) = (_ : GRing.UnitRing.type) :> Type. +Check erefl : (_ : GRing.IntegralDomain.type) = (_ : Num.RealClosedField.type) :> Type. +Check erefl : (_ : Finite.type) = (_ : GRing.Zmodule.type) :> Type. +Check erefl : (_ : FieldExt.type) = (_ : GRing.Ring.type) :> Type. +Check erefl : (_ : GRing.Field.type) = (_ : GRing.Lalgebra.type) :> Type. +Check erefl : (_ : Choice.type) = (_ : FinRing.ComUnitRing.type) :> Type. +Check erefl : (_ : Countable.type) = (_ : GRing.UnitAlgebra.type) :> Type. +Check erefl : (_ : CountRing.Field.type) = (_ : GRing.Ring.type) :> Type. +Check erefl : (_ : CountRing.ComUnitRing.type) = (_ : FinRing.IntegralDomain.type) :> Type. +Check erefl : (_ : FinRing.UnitAlgebra.type) = (_ : GRing.UnitAlgebra.type) :> Type. +Check erefl : (_ : CountRing.ComUnitRing.type) = (_ : GRing.Ring.type) :> Type. +Check erefl : (_ : CountRing.ClosedField.type) = (_ : GRing.ClosedField.type) :> Type. +Check erefl : (_ : CountRing.Field.type) = (_ : GRing.Field.type) :> Type. +Check erefl : (_ : FinRing.ComUnitRing.type) = (_ : GRing.Ring.type) :> Type. +Check erefl : (_ : GRing.ClosedField.type) = (_ : GRing.IntegralDomain.type) :> Type. +Check erefl : (_ : Equality.type) = (_ : Vector.type) :> Type. +Check erefl : (_ : GRing.Lalgebra.type) = (_ : GRing.Zmodule.type) :> Type. +Check erefl : (_ : GRing.Algebra.type) = (_ : GRing.ComRing.type) :> Type. +Check erefl : (_ : CountRing.IntegralDomain.type) = (_ : CountRing.Zmodule.type) :> Type. +Check erefl : (_ : FinRing.Ring.type) = (_ : FinRing.UnitRing.type) :> Type. +Check erefl : (_ : GRing.ComUnitRing.type) = (_ : GRing.IntegralDomain.type) :> Type. +Check erefl : (_ : FinRing.IntegralDomain.type) = (_ : GRing.IntegralDomain.type) :> Type. +Check erefl : (_ : Choice.type) = (_ : GRing.IntegralDomain.type) :> Type. +Check erefl : (_ : Choice.type) = (_ : Countable.type) :> Type. +Check erefl : (_ : Choice.type) = (_ : CountRing.Zmodule.type) :> Type. +Check erefl : (_ : Choice.type) = (_ : SplittingField.type) :> Type. +Check erefl : (_ : FinRing.Lalgebra.type) = (_ : GRing.UnitRing.type) :> Type. +Check erefl : (_ : CountRing.Ring.type) = (_ : GRing.Lalgebra.type) :> Type. +Check erefl : (_ : FinRing.ComRing.type) = (_ : GRing.Ring.type) :> Type. +Check erefl : (_ : Choice.type) = (_ : FinRing.Lalgebra.type) :> Type. +Check erefl : (_ : CountRing.UnitRing.type) = (_ : GRing.Field.type) :> Type. +Check erefl : (_ : GRing.DecidableField.type) = (_ : Num.ClosedField.type) :> Type. +Check erefl : (_ : Choice.type) = (_ : GRing.Ring.type) :> Type. +Check erefl : (_ : GRing.ComUnitRing.type) = (_ : GRing.Ring.type) :> Type. +Check erefl : (_ : CountRing.ComRing.type) = (_ : GRing.Zmodule.type) :> Type. +Check erefl : (_ : CountRing.Zmodule.type) = (_ : FinRing.ComUnitRing.type) :> Type. +Check erefl : (_ : CountRing.Ring.type) = (_ : GRing.UnitAlgebra.type) :> Type. +Check erefl : (_ : CountRing.Zmodule.type) = (_ : GRing.Ring.type) :> Type. +Check erefl : (_ : GRing.ComRing.type) = (_ : Num.RealField.type) :> Type. +Check erefl : (_ : GRing.ClosedField.type) = (_ : GRing.Ring.type) :> Type. +Check erefl : (_ : CountRing.ComUnitRing.type) = (_ : GRing.ComRing.type) :> Type. +Check erefl : (_ : Countable.type) = (_ : FinRing.UnitRing.type) :> Type. +Check erefl : (_ : Equality.type) = (_ : GRing.Ring.type) :> Type. +Check erefl : (_ : FinRing.Lmodule.type) = (_ : GRing.UnitRing.type) :> Type. +Check erefl : (_ : CountRing.IntegralDomain.type) = (_ : GRing.ComRing.type) :> Type. +Check erefl : (_ : CountRing.ClosedField.type) = (_ : GRing.UnitRing.type) :> Type. +Check erefl : (_ : Equality.type) = (_ : SplittingField.type) :> Type. +Check erefl : (_ : Countable.type) = (_ : FinRing.UnitAlgebra.type) :> Type. +Check erefl : (_ : CountRing.Field.type) = (_ : GRing.Zmodule.type) :> Type. +Check erefl : (_ : GRing.Zmodule.type) = (_ : Vector.type) :> Type. +Check erefl : (_ : CountRing.Field.type) = (_ : CountRing.Zmodule.type) :> Type. +Check erefl : (_ : Equality.type) = (_ : FinRing.Field.type) :> Type. +Check erefl : (_ : Falgebra.type) = (_ : GRing.UnitAlgebra.type) :> Type. +Check erefl : (_ : FinRing.Algebra.type) = (_ : GRing.Algebra.type) :> Type. +Check erefl : (_ : CountRing.UnitRing.type) = (_ : FinRing.ComUnitRing.type) :> Type. +Check erefl : (_ : FinRing.Algebra.type) = (_ : FinRing.Lalgebra.type) :> Type. +Check erefl : (_ : GRing.Zmodule.type) = (_ : Num.NumDomain.type) :> Type. +Check erefl : (_ : CountRing.Ring.type) = (_ : GRing.Algebra.type) :> Type. +Check erefl : (_ : FinGroup.type) = (_ : FinRing.UnitAlgebra.type) :> Type. +Check erefl : (_ : Choice.type) = (_ : Vector.type) :> Type. +Check erefl : (_ : CountRing.ComUnitRing.type) = (_ : GRing.Field.type) :> Type. +Check erefl : (_ : FinRing.UnitAlgebra.type) = (_ : FinRing.Zmodule.type) :> Type. +Check erefl : (_ : Falgebra.type) = (_ : GRing.UnitRing.type) :> Type. +Check erefl : (_ : Num.NumDomain.type) = (_ : Num.RealClosedField.type) :> Type. +Check erefl : (_ : CountRing.DecidableField.type) = (_ : GRing.IntegralDomain.type) :> Type. +Check erefl : (_ : FinRing.UnitAlgebra.type) = (_ : GRing.UnitRing.type) :> Type. +Check erefl : (_ : FinRing.ComUnitRing.type) = (_ : FinRing.UnitRing.type) :> Type. +Check erefl : (_ : CountRing.DecidableField.type) = (_ : CountRing.UnitRing.type) :> Type. +Check erefl : (_ : FinGroup.type) = (_ : FinRing.Lmodule.type) :> Type. +Check erefl : (_ : CountRing.IntegralDomain.type) = (_ : FinRing.UnitRing.type) :> Type. +Check erefl : (_ : FieldExt.type) = (_ : GRing.Lmodule.type) :> Type. +Check erefl : (_ : Choice.type) = (_ : FinGroup.type) :> Type. +Check erefl : (_ : CountRing.ComRing.type) = (_ : GRing.Field.type) :> Type. +Check erefl : (_ : CountRing.Field.type) = (_ : Finite.type) :> Type. +Check erefl : (_ : FinGroup.type) = (_ : FinRing.ComUnitRing.type) :> Type. +Check erefl : (_ : GRing.Field.type) = (_ : GRing.IntegralDomain.type) :> Type. +Check erefl : (_ : CountRing.Field.type) = (_ : CountRing.IntegralDomain.type) :> Type. +Check erefl : (_ : FinRing.Ring.type) = (_ : GRing.UnitAlgebra.type) :> Type. +Check erefl : (_ : Num.ArchimedeanField.type) = (_ : Num.RealField.type) :> Type. +Check erefl : (_ : FinRing.UnitAlgebra.type) = (_ : GRing.Algebra.type) :> Type. +Check erefl : (_ : Countable.type) = (_ : FinRing.Lalgebra.type) :> Type. +Check erefl : (_ : CountRing.ComRing.type) = (_ : CountRing.Field.type) :> Type. +Check erefl : (_ : GRing.UnitAlgebra.type) = (_ : GRing.UnitRing.type) :> Type. +Check erefl : (_ : GRing.Algebra.type) = (_ : GRing.Field.type) :> Type. +Check erefl : (_ : CountRing.Field.type) = (_ : FinRing.Field.type) :> Type. +Check erefl : (_ : FinRing.Lmodule.type) = (_ : GRing.Lmodule.type) :> Type. +Check erefl : (_ : CountRing.Field.type) = (_ : CountRing.UnitRing.type) :> Type. +Check erefl : (_ : GRing.Algebra.type) = (_ : GRing.Ring.type) :> Type. +Check erefl : (_ : GRing.ComRing.type) = (_ : Vector.type) :> Type. +Check erefl : (_ : CountRing.UnitRing.type) = (_ : CountRing.Zmodule.type) :> Type. +Check erefl : (_ : CountRing.ComUnitRing.type) = (_ : CountRing.IntegralDomain.type) :> Type. +Check erefl : (_ : CountRing.ComRing.type) = (_ : CountRing.IntegralDomain.type) :> Type. +Check erefl : (_ : Countable.type) = (_ : GRing.IntegralDomain.type) :> Type. +Check erefl : (_ : FinGroup.type) = (_ : GRing.Algebra.type) :> Type. +Check erefl : (_ : CountRing.UnitRing.type) = (_ : FinRing.Zmodule.type) :> Type. +Check erefl : (_ : CountRing.ComUnitRing.type) = (_ : CountRing.Ring.type) :> Type. +Check erefl : (_ : GRing.ComUnitRing.type) = (_ : GRing.Lalgebra.type) :> Type. +Check erefl : (_ : CountRing.Ring.type) = (_ : FinRing.Lalgebra.type) :> Type. +Check erefl : (_ : Choice.type) = (_ : GRing.Lalgebra.type) :> Type. +Check erefl : (_ : CountRing.ComRing.type) = (_ : FinRing.ComUnitRing.type) :> Type. +Check erefl : (_ : Equality.type) = (_ : Finite.type) :> Type. +Check erefl : (_ : FinRing.Lmodule.type) = (_ : GRing.Lalgebra.type) :> Type. +Check erefl : (_ : FinRing.Zmodule.type) = (_ : GRing.UnitRing.type) :> Type. +Check erefl : (_ : FinRing.Zmodule.type) = (_ : GRing.Field.type) :> Type. +Check erefl : (_ : GRing.ClosedField.type) = (_ : GRing.UnitRing.type) :> Type. +Check erefl : (_ : Countable.type) = (_ : GRing.Lalgebra.type) :> Type. +Check erefl : (_ : Equality.type) = (_ : GRing.ComRing.type) :> Type. +Check erefl : (_ : CountRing.ComRing.type) = (_ : CountRing.ComUnitRing.type) :> Type. +Check erefl : (_ : CountRing.Field.type) = (_ : FinRing.Zmodule.type) :> Type. +Check erefl : (_ : Equality.type) = (_ : Num.NumDomain.type) :> Type. +Check erefl : (_ : FinRing.Ring.type) = (_ : GRing.IntegralDomain.type) :> Type. +Check erefl : (_ : FinRing.UnitAlgebra.type) = (_ : FinRing.UnitRing.type) :> Type. +Check erefl : (_ : FinRing.UnitRing.type) = (_ : Finite.type) :> Type. +Check erefl : (_ : FinGroup.type) = (_ : GRing.IntegralDomain.type) :> Type. +Check erefl : (_ : FinRing.Lalgebra.type) = (_ : FinRing.UnitRing.type) :> Type. +Check erefl : (_ : CountRing.Zmodule.type) = (_ : GRing.Lmodule.type) :> Type. +Check erefl : (_ : FinRing.ComUnitRing.type) = (_ : FinRing.Field.type) :> Type. +Check erefl : (_ : CountRing.Zmodule.type) = (_ : FinRing.Lmodule.type) :> Type. +Check erefl : (_ : CountRing.IntegralDomain.type) = (_ : FinGroup.type) :> Type. +Check erefl : (_ : CountRing.ComUnitRing.type) = (_ : CountRing.UnitRing.type) :> Type. +Check erefl : (_ : FinRing.UnitRing.type) = (_ : GRing.ComRing.type) :> Type. +Check erefl : (_ : GRing.IntegralDomain.type) = (_ : GRing.Zmodule.type) :> Type. +Check erefl : (_ : FinRing.Ring.type) = (_ : GRing.UnitRing.type) :> Type. +Check erefl : (_ : CountRing.Zmodule.type) = (_ : GRing.Lalgebra.type) :> Type. +Check erefl : (_ : Equality.type) = (_ : FinRing.IntegralDomain.type) :> Type. +Check erefl : (_ : GRing.DecidableField.type) = (_ : GRing.IntegralDomain.type) :> Type. +Check erefl : (_ : CountRing.UnitRing.type) = (_ : FinRing.Field.type) :> Type. +Check erefl : (_ : GRing.Algebra.type) = (_ : GRing.UnitAlgebra.type) :> Type. +Check erefl : (_ : FinGroup.type) = (_ : FinRing.IntegralDomain.type) :> Type. +Check erefl : (_ : GRing.Ring.type) = (_ : Vector.type) :> Type. +Check erefl : (_ : Choice.type) = (_ : FinRing.Algebra.type) :> Type. +Check erefl : (_ : CountRing.IntegralDomain.type) = (_ : Finite.type) :> Type. +Check erefl : (_ : GRing.ComUnitRing.type) = (_ : GRing.DecidableField.type) :> Type. +Check erefl : (_ : FinRing.ComUnitRing.type) = (_ : GRing.Field.type) :> Type. +Check erefl : (_ : CountRing.Ring.type) = (_ : GRing.Field.type) :> Type. +Check erefl : (_ : FinRing.Field.type) = (_ : GRing.Field.type) :> Type. +Check erefl : (_ : CountRing.DecidableField.type) = (_ : GRing.Field.type) :> Type. +Check erefl : (_ : FinRing.Zmodule.type) = (_ : GRing.IntegralDomain.type) :> Type. +Check erefl : (_ : CountRing.Zmodule.type) = (_ : FinRing.Ring.type) :> Type. +Check erefl : (_ : Num.ArchimedeanField.type) = (_ : Num.NumDomain.type) :> Type. +Check erefl : (_ : Choice.type) = (_ : FinRing.Zmodule.type) :> Type. +Check erefl : (_ : Countable.type) = (_ : GRing.ComRing.type) :> Type. +Check erefl : (_ : GRing.Algebra.type) = (_ : GRing.ComUnitRing.type) :> Type. +Check erefl : (_ : Choice.type) = (_ : CountRing.IntegralDomain.type) :> Type. +Check erefl : (_ : CountRing.UnitRing.type) = (_ : GRing.UnitRing.type) :> Type. +Check erefl : (_ : CountRing.ComUnitRing.type) = (_ : CountRing.Field.type) :> Type. +Check erefl : (_ : CountRing.ClosedField.type) = (_ : CountRing.Zmodule.type) :> Type. +Check erefl : (_ : CountRing.ClosedField.type) = (_ : Countable.type) :> Type. +Check erefl : (_ : CountRing.DecidableField.type) = (_ : CountRing.Field.type) :> Type. +Check erefl : (_ : CountRing.Field.type) = (_ : Equality.type) :> Type. +Check erefl : (_ : Choice.type) = (_ : FinRing.ComRing.type) :> Type. +Check erefl : (_ : FinRing.Lmodule.type) = (_ : GRing.UnitAlgebra.type) :> Type. +Check erefl : (_ : CountRing.Field.type) = (_ : GRing.UnitRing.type) :> Type. +Check erefl : (_ : Choice.type) = (_ : CountRing.Field.type) :> Type. +Check erefl : (_ : GRing.Field.type) = (_ : Num.RealClosedField.type) :> Type. +Check erefl : (_ : FinRing.Field.type) = (_ : FinRing.Ring.type) :> Type. +Check erefl : (_ : FinRing.UnitRing.type) = (_ : GRing.Lalgebra.type) :> Type. +Check erefl : (_ : FinRing.Algebra.type) = (_ : FinRing.Ring.type) :> Type. +Check erefl : (_ : Choice.type) = (_ : CountRing.ComUnitRing.type) :> Type. +Check erefl : (_ : FinRing.Field.type) = (_ : GRing.Zmodule.type) :> Type. +Check erefl : (_ : FinRing.UnitRing.type) = (_ : GRing.Algebra.type) :> Type. +Check erefl : (_ : CountRing.Ring.type) = (_ : CountRing.Zmodule.type) :> Type. +Check erefl : (_ : CountRing.DecidableField.type) = (_ : Countable.type) :> Type. +Check erefl : (_ : CountRing.Ring.type) = (_ : Countable.type) :> Type. +Check erefl : (_ : CountRing.DecidableField.type) = (_ : CountRing.Zmodule.type) :> Type. +Check erefl : (_ : FinRing.IntegralDomain.type) = (_ : FinRing.Ring.type) :> Type. +Check erefl : (_ : FinGroup.type) = (_ : FinRing.ComRing.type) :> Type. +Check erefl : (_ : GRing.ComUnitRing.type) = (_ : GRing.UnitRing.type) :> Type. +Check erefl : (_ : FinRing.UnitRing.type) = (_ : GRing.Zmodule.type) :> Type. +Check erefl : (_ : FinRing.IntegralDomain.type) = (_ : GRing.ComRing.type) :> Type. +Check erefl : (_ : Falgebra.type) = (_ : GRing.ComUnitRing.type) :> Type. +Check erefl : (_ : FinRing.Lalgebra.type) = (_ : FinRing.UnitAlgebra.type) :> Type. +Check erefl : (_ : FinRing.Lalgebra.type) = (_ : GRing.Lalgebra.type) :> Type. +Check erefl : (_ : FinRing.ComRing.type) = (_ : FinRing.Zmodule.type) :> Type. +Check erefl : (_ : CountRing.Ring.type) = (_ : GRing.Lmodule.type) :> Type. +Check erefl : (_ : CountRing.Ring.type) = (_ : FinRing.ComUnitRing.type) :> Type. +Check erefl : (_ : CountRing.ClosedField.type) = (_ : CountRing.ComUnitRing.type) :> Type. +Check erefl : (_ : CountRing.ComUnitRing.type) = (_ : GRing.ClosedField.type) :> Type. +Check erefl : (_ : GRing.Lalgebra.type) = (_ : GRing.Lmodule.type) :> Type. +Check erefl : (_ : FinRing.Ring.type) = (_ : GRing.Lalgebra.type) :> Type. +Check erefl : (_ : GRing.ComUnitRing.type) = (_ : GRing.Field.type) :> Type. +Check erefl : (_ : CountRing.Ring.type) = (_ : FinRing.Zmodule.type) :> Type. +Check erefl : (_ : CountRing.Ring.type) = (_ : FinRing.Algebra.type) :> Type. +Check erefl : (_ : Equality.type) = (_ : GRing.ComUnitRing.type) :> Type. +Check erefl : (_ : CountRing.ComUnitRing.type) = (_ : Countable.type) :> Type. +Check erefl : (_ : GRing.IntegralDomain.type) = (_ : Num.RealDomain.type) :> Type. +Check erefl : (_ : CountRing.Zmodule.type) = (_ : GRing.DecidableField.type) :> Type. +Check erefl : (_ : CountRing.UnitRing.type) = (_ : GRing.ComUnitRing.type) :> Type. +Check erefl : (_ : GRing.UnitRing.type) = (_ : Num.NumField.type) :> Type. +Check erefl : (_ : GRing.DecidableField.type) = (_ : GRing.Ring.type) :> Type. +Check erefl : (_ : GRing.ClosedField.type) = (_ : Num.ClosedField.type) :> Type. +Check erefl : (_ : GRing.Algebra.type) = (_ : GRing.Zmodule.type) :> Type. +Check erefl : (_ : CountRing.Zmodule.type) = (_ : GRing.ComRing.type) :> Type. +Check erefl : (_ : FinGroup.type) = (_ : Finite.type) :> Type. +Check erefl : (_ : Choice.type) = (_ : FinRing.UnitRing.type) :> Type. +Check erefl : (_ : CountRing.Zmodule.type) = (_ : GRing.Algebra.type) :> Type. +Check erefl : (_ : CountRing.Zmodule.type) = (_ : FinRing.Lalgebra.type) :> Type. +Check erefl : (_ : FinRing.Lalgebra.type) = (_ : GRing.Algebra.type) :> Type. +Check erefl : (_ : FinRing.Ring.type) = (_ : Finite.type) :> Type. +Check erefl : (_ : Equality.type) = (_ : Num.RealDomain.type) :> Type. +Check erefl : (_ : Falgebra.type) = (_ : GRing.ComRing.type) :> Type. +Check erefl : (_ : Equality.type) = (_ : GRing.Algebra.type) :> Type. +Check erefl : (_ : CountRing.ClosedField.type) = (_ : GRing.IntegralDomain.type) :> Type. +Check erefl : (_ : CountRing.ComUnitRing.type) = (_ : FinRing.ComUnitRing.type) :> Type. +Check erefl : (_ : GRing.ComRing.type) = (_ : Num.RealClosedField.type) :> Type. +Check erefl : (_ : GRing.IntegralDomain.type) = (_ : SplittingField.type) :> Type. +Check erefl : (_ : FinRing.Lalgebra.type) = (_ : GRing.UnitAlgebra.type) :> Type. +Check erefl : (_ : Falgebra.type) = (_ : GRing.Lalgebra.type) :> Type. +Check erefl : (_ : GRing.IntegralDomain.type) = (_ : Num.NumField.type) :> Type. +Check erefl : (_ : Choice.type) = (_ : Falgebra.type) :> Type. +Check erefl : (_ : CountRing.Ring.type) = (_ : GRing.UnitRing.type) :> Type. +Check erefl : (_ : CountRing.DecidableField.type) = (_ : GRing.UnitRing.type) :> Type. +Check erefl : (_ : FinRing.ComRing.type) = (_ : FinRing.ComUnitRing.type) :> Type. +Check erefl : (_ : CountRing.Zmodule.type) = (_ : GRing.ComUnitRing.type) :> Type. +Check erefl : (_ : FinRing.Algebra.type) = (_ : FinRing.UnitAlgebra.type) :> Type. +Check erefl : (_ : CountRing.ComRing.type) = (_ : GRing.ClosedField.type) :> Type. +Check erefl : (_ : GRing.ComRing.type) = (_ : Num.ClosedField.type) :> Type. +Check erefl : (_ : CountRing.ClosedField.type) = (_ : CountRing.Field.type) :> Type. +Check erefl : (_ : Countable.type) = (_ : Finite.type) :> Type. +Check erefl : (_ : CountRing.Ring.type) = (_ : FinRing.Lmodule.type) :> Type. +Check erefl : (_ : FinRing.Lalgebra.type) = (_ : FinRing.Zmodule.type) :> Type. +Check erefl : (_ : GRing.Lalgebra.type) = (_ : GRing.Ring.type) :> Type. +Check erefl : (_ : GRing.UnitRing.type) = (_ : Num.NumDomain.type) :> Type. +Check erefl : (_ : FinRing.UnitRing.type) = (_ : GRing.UnitAlgebra.type) :> Type. +Check erefl : (_ : CountRing.ComUnitRing.type) = (_ : FinRing.Field.type) :> Type. +Check erefl : (_ : Num.ClosedField.type) = (_ : Num.NumDomain.type) :> Type. +Check erefl : (_ : FinRing.Field.type) = (_ : FinRing.IntegralDomain.type) :> Type. +Check erefl : (_ : GRing.ComUnitRing.type) = (_ : Num.ArchimedeanField.type) :> Type. +Check erefl : (_ : CountRing.Zmodule.type) = (_ : Equality.type) :> Type. +Check erefl : (_ : Falgebra.type) = (_ : Vector.type) :> Type. +Check erefl : (_ : GRing.Lmodule.type) = (_ : Vector.type) :> Type. +Check erefl : (_ : CountRing.IntegralDomain.type) = (_ : CountRing.UnitRing.type) :> Type. +Check erefl : (_ : FinRing.Field.type) = (_ : FinRing.UnitRing.type) :> Type. +Check erefl : (_ : FinRing.UnitAlgebra.type) = (_ : GRing.Zmodule.type) :> Type. +Check erefl : (_ : FinRing.ComRing.type) = (_ : GRing.Zmodule.type) :> Type. +Check erefl : (_ : GRing.Ring.type) = (_ : SplittingField.type) :> Type. +Check erefl : (_ : FinRing.Zmodule.type) = (_ : GRing.Ring.type) :> Type. +Check erefl : (_ : FinGroup.type) = (_ : GRing.Lmodule.type) :> Type. +Check erefl : (_ : CountRing.Field.type) = (_ : GRing.DecidableField.type) :> Type. +Check erefl : (_ : CountRing.ComRing.type) = (_ : Countable.type) :> Type. +Check erefl : (_ : FinGroup.type) = (_ : FinRing.Zmodule.type) :> Type. +Check erefl : (_ : CountRing.UnitRing.type) = (_ : FinRing.UnitRing.type) :> Type. +Check erefl : (_ : GRing.ClosedField.type) = (_ : GRing.Field.type) :> Type. +Check erefl : (_ : Num.NumDomain.type) = (_ : Num.NumField.type) :> Type. +Check erefl : (_ : Choice.type) = (_ : FinRing.Ring.type) :> Type. +Check erefl : (_ : Equality.type) = (_ : Num.ArchimedeanField.type) :> Type. +Check erefl : (_ : FinGroup.type) = (_ : GRing.UnitAlgebra.type) :> Type. +Check erefl : (_ : CountRing.ClosedField.type) = (_ : GRing.Field.type) :> Type. +Check erefl : (_ : CountRing.UnitRing.type) = (_ : FinRing.IntegralDomain.type) :> Type. +Check erefl : (_ : CountRing.DecidableField.type) = (_ : GRing.DecidableField.type) :> Type. +Check erefl : (_ : Choice.type) = (_ : GRing.Zmodule.type) :> Type. +Check erefl : (_ : FinRing.UnitAlgebra.type) = (_ : GRing.Lalgebra.type) :> Type. +Check erefl : (_ : FinRing.ComRing.type) = (_ : GRing.ComRing.type) :> Type. +Check erefl : (_ : Falgebra.type) = (_ : GRing.IntegralDomain.type) :> Type. +Check erefl : (_ : GRing.ComRing.type) = (_ : GRing.UnitRing.type) :> Type. +Check erefl : (_ : Equality.type) = (_ : GRing.ClosedField.type) :> Type. +Check erefl : (_ : FieldExt.type) = (_ : Vector.type) :> Type. +Check erefl : (_ : CountRing.DecidableField.type) = (_ : GRing.Zmodule.type) :> Type. +Check erefl : (_ : CountRing.ComRing.type) = (_ : Finite.type) :> Type. +Check erefl : (_ : CountRing.ComUnitRing.type) = (_ : GRing.Zmodule.type) :> Type. +Check erefl : (_ : CountRing.ComUnitRing.type) = (_ : GRing.DecidableField.type) :> Type. +Check erefl : (_ : CountRing.Ring.type) = (_ : FinGroup.type) :> Type. +Check erefl : (_ : Equality.type) = (_ : Num.RealClosedField.type) :> Type. +Check erefl : (_ : GRing.Algebra.type) = (_ : Vector.type) :> Type. +Check erefl : (_ : CountRing.IntegralDomain.type) = (_ : FinRing.ComRing.type) :> Type. +Check erefl : (_ : GRing.ComRing.type) = (_ : GRing.ComUnitRing.type) :> Type. +Check erefl : (_ : FinRing.ComUnitRing.type) = (_ : FinRing.Ring.type) :> Type. +Check erefl : (_ : GRing.Ring.type) = (_ : GRing.UnitAlgebra.type) :> Type. +Check erefl : (_ : CountRing.ComUnitRing.type) = (_ : FinRing.Ring.type) :> Type. +Check erefl : (_ : GRing.IntegralDomain.type) = (_ : GRing.UnitAlgebra.type) :> Type. +Check erefl : (_ : CountRing.IntegralDomain.type) = (_ : GRing.ClosedField.type) :> Type. +Check erefl : (_ : FinRing.Algebra.type) = (_ : FinRing.Lmodule.type) :> Type. +Check erefl : (_ : Countable.type) = (_ : GRing.Algebra.type) :> Type. +Check erefl : (_ : FinRing.Algebra.type) = (_ : GRing.Ring.type) :> Type. +Check erefl : (_ : GRing.ComUnitRing.type) = (_ : Num.RealDomain.type) :> Type. +Check erefl : (_ : Countable.type) = (_ : FinRing.Algebra.type) :> Type. +Check erefl : (_ : FinRing.Algebra.type) = (_ : GRing.Lalgebra.type) :> Type. +Check erefl : (_ : Choice.type) = (_ : Num.RealClosedField.type) :> Type. +Check erefl : (_ : Countable.type) = (_ : Equality.type) :> Type. +Check erefl : (_ : FinRing.Lalgebra.type) = (_ : GRing.Lmodule.type) :> Type. +Check erefl : (_ : FinRing.ComRing.type) = (_ : GRing.UnitRing.type) :> Type. +Check erefl : (_ : Choice.type) = (_ : GRing.ClosedField.type) :> Type. +Check erefl : (_ : Countable.type) = (_ : GRing.Ring.type) :> Type. +Check erefl : (_ : Choice.type) = (_ : GRing.UnitAlgebra.type) :> Type. +Check erefl : (_ : GRing.ComUnitRing.type) = (_ : GRing.UnitAlgebra.type) :> Type. +Check erefl : (_ : GRing.Zmodule.type) = (_ : Num.ArchimedeanField.type) :> Type. + +(* fix in ssrnum *) +Fail Check erefl : (_ : GRing.Field.type) = (_ : Num.NumDomain.type) :> Type. +Fail Check erefl : (_ : GRing.Field.type) = (_ : Num.RealDomain.type) :> Type. + +(* fix in countalg *) +Fail Check erefl : (_ : CountRing.ClosedField.type) = (_ : CountRing.IntegralDomain.type) :> Type. +Fail Check erefl : (_ : CountRing.UnitRing.type) = (_ : GRing.Lmodule.type) :> Type. +Fail Check erefl : (_ : CountRing.UnitRing.type) = (_ : GRing.Algebra.type) :> Type. +Fail Check erefl : (_ : CountRing.UnitRing.type) = (_ : GRing.Lalgebra.type) :> Type. + +(* fix in finalg *) +Fail Check erefl : (_ : CountRing.Zmodule.type) = (_ : FinRing.Algebra.type) :> Type. +Fail Check erefl : (_ : CountRing.ComRing.type) = (_ : FinRing.UnitRing.type) :> Type. +Fail Check erefl : (_ : CountRing.UnitRing.type) = (_ : FinRing.Algebra.type) :> Type. +Fail Check erefl : (_ : CountRing.UnitRing.type) = (_ : FinRing.Lalgebra.type) :> Type. +Fail Check erefl : (_ : CountRing.UnitRing.type) = (_ : FinRing.Lmodule.type) :> Type. +Fail Check erefl : (_ : CountRing.UnitRing.type) = (_ : FinRing.ComRing.type) :> Type. -- cgit v1.2.3 From fa01cdf52c9af3f7e57a865a063e3d02f28cbf60 Mon Sep 17 00:00:00 2001 From: Kazuhiko Sakaguchi Date: Tue, 2 Apr 2019 20:34:01 +0200 Subject: Fix inheritances in countalg and finalg (the 2nd attempt) --- mathcomp/algebra/countalg.v | 4 +++- mathcomp/algebra/finalg.v | 29 ++++++++++++++++++++++++++++- mathcomp/test-suite/hierarchy_test.v | 20 ++++++++++---------- 3 files changed, 41 insertions(+), 12 deletions(-) (limited to 'mathcomp') diff --git a/mathcomp/algebra/countalg.v b/mathcomp/algebra/countalg.v index f82a231..962a296 100644 --- a/mathcomp/algebra/countalg.v +++ b/mathcomp/algebra/countalg.v @@ -762,6 +762,8 @@ Coercion countComUnitRingType : type >-> ComUnitRing.type. Canonical countComUnitRingType. Coercion idomainType : type >-> GRing.IntegralDomain.type. Canonical idomainType. +Coercion countIdomainType : type >-> IntegralDomain.type. +Canonical countIdomainType. Coercion fieldType : type >-> GRing.Field.type. Canonical fieldType. Coercion countFieldType : type >-> Field.type. @@ -794,4 +796,4 @@ End CountRing. Import CountRing. Export Zmodule.Exports Ring.Exports ComRing.Exports UnitRing.Exports. Export ComUnitRing.Exports IntegralDomain.Exports. -Export Field.Exports DecidableField.Exports ClosedField.Exports. \ No newline at end of file +Export Field.Exports DecidableField.Exports ClosedField.Exports. diff --git a/mathcomp/algebra/finalg.v b/mathcomp/algebra/finalg.v index e17c5a6..ac3a74e 100644 --- a/mathcomp/algebra/finalg.v +++ b/mathcomp/algebra/finalg.v @@ -648,9 +648,13 @@ Definition countComUnitRing_finUnitRingType := Definition unitRing_countComRingType := @CountRing.ComRing.Pack unitRingType xclass. Definition unitRing_finComRingType := @ComRing.Pack unitRingType xclass. +Definition countUnitRing_finComRingType := + @ComRing.Pack countUnitRingType xclass. Definition comRing_countUnitRingType := @CountRing.UnitRing.Pack comRingType xclass. Definition comRing_finUnitRingType := @UnitRing.Pack comRingType xclass. +Definition countComRing_finUnitRingType := + @UnitRing.Pack countComRingType xclass. Definition finComRing_finUnitRingType := @UnitRing.Pack finComRingType xclass. End ClassDef. @@ -718,8 +722,10 @@ Canonical countComUnitRing_finComRingType. Canonical countComUnitRing_finUnitRingType. Canonical unitRing_countComRingType. Canonical unitRing_finComRingType. +Canonical countUnitRing_finComRingType. Canonical comRing_countUnitRingType. Canonical comRing_finUnitRingType. +Canonical countComRing_finUnitRingType. Canonical finComRing_finUnitRingType. Notation finComUnitRingType := FinRing.ComUnitRing.type. Notation "[ 'finComUnitRingType' 'of' T ]" := (do_pack pack T) @@ -1363,6 +1369,8 @@ Coercion finGroupType : type >-> FinGroup.type. Canonical finGroupType. Coercion zmodType : type >-> GRing.Zmodule.type. Canonical zmodType. +Coercion countZmodType : type >-> CountRing.Zmodule.type. +Canonical countZmodType. Coercion finZmodType : type >-> Zmodule.type. Canonical finZmodType. Coercion ringType : type >-> GRing.Ring.type. @@ -1453,7 +1461,8 @@ Definition unitAlg_countZmodType := @CountRing.Zmodule.Pack unitAlgType xclass. Definition unitAlg_finZmodType := @Zmodule.Pack unitAlgType xclass. Definition unitAlg_countRingType := @CountRing.Ring.Pack unitAlgType xclass. Definition unitAlg_finRingType := @Ring.Pack unitAlgType xclass. -Definition unitAlg_countUnitRingType := @CountRing.UnitRing.Pack unitAlgType xclass. +Definition unitAlg_countUnitRingType := + @CountRing.UnitRing.Pack unitAlgType xclass. Definition unitAlg_finUnitRingType := @UnitRing.Pack unitAlgType xclass. Definition unitAlg_finLmodType := @Lmodule.Pack R phR unitAlgType xclass. Definition unitAlg_finLalgType := @Lalgebra.Pack R phR unitAlgType xclass. @@ -1461,6 +1470,18 @@ Definition unitAlg_finAlgType := @Algebra.Pack R phR unitAlgType xclass. Definition unitRing_finLmodType := @Lmodule.Pack R phR unitRingType xclass. Definition unitRing_finLalgType := @Lalgebra.Pack R phR unitRingType xclass. Definition unitRing_finAlgType := @Algebra.Pack R phR unitRingType xclass. +Definition countUnitRing_lmodType := + @GRing.Lmodule.Pack R phR countUnitRingType xclass. +Definition countUnitRing_finLmodType := + @Lmodule.Pack R phR countUnitRingType xclass. +Definition countUnitRing_lalgType := + @GRing.Lalgebra.Pack R phR countUnitRingType xclass. +Definition countUnitRing_finLalgType := + @Lalgebra.Pack R phR countUnitRingType xclass. +Definition countUnitRing_algType := + @GRing.Algebra.Pack R phR countUnitRingType xclass. +Definition countUnitRing_finAlgType := + @Algebra.Pack R phR countUnitRingType xclass. Definition finUnitRing_lmodType := @GRing.Lmodule.Pack R phR finUnitRingType xclass. Definition finUnitRing_finLmodType := @@ -1542,6 +1563,12 @@ Canonical unitAlg_finAlgType. Canonical unitRing_finLmodType. Canonical unitRing_finLalgType. Canonical unitRing_finAlgType. +Canonical countUnitRing_lmodType. +Canonical countUnitRing_finLmodType. +Canonical countUnitRing_lalgType. +Canonical countUnitRing_finLalgType. +Canonical countUnitRing_algType. +Canonical countUnitRing_finAlgType. Canonical finUnitRing_lmodType. Canonical finUnitRing_finLmodType. Canonical finUnitRing_lalgType. diff --git a/mathcomp/test-suite/hierarchy_test.v b/mathcomp/test-suite/hierarchy_test.v index 0085018..10564b9 100644 --- a/mathcomp/test-suite/hierarchy_test.v +++ b/mathcomp/test-suite/hierarchy_test.v @@ -705,15 +705,15 @@ Fail Check erefl : (_ : GRing.Field.type) = (_ : Num.NumDomain.type) :> Type. Fail Check erefl : (_ : GRing.Field.type) = (_ : Num.RealDomain.type) :> Type. (* fix in countalg *) -Fail Check erefl : (_ : CountRing.ClosedField.type) = (_ : CountRing.IntegralDomain.type) :> Type. -Fail Check erefl : (_ : CountRing.UnitRing.type) = (_ : GRing.Lmodule.type) :> Type. -Fail Check erefl : (_ : CountRing.UnitRing.type) = (_ : GRing.Algebra.type) :> Type. -Fail Check erefl : (_ : CountRing.UnitRing.type) = (_ : GRing.Lalgebra.type) :> Type. +Check erefl : (_ : CountRing.ClosedField.type) = (_ : CountRing.IntegralDomain.type) :> Type. +Check erefl : (_ : CountRing.UnitRing.type) = (_ : GRing.Lmodule.type) :> Type. +Check erefl : (_ : CountRing.UnitRing.type) = (_ : GRing.Algebra.type) :> Type. +Check erefl : (_ : CountRing.UnitRing.type) = (_ : GRing.Lalgebra.type) :> Type. (* fix in finalg *) -Fail Check erefl : (_ : CountRing.Zmodule.type) = (_ : FinRing.Algebra.type) :> Type. -Fail Check erefl : (_ : CountRing.ComRing.type) = (_ : FinRing.UnitRing.type) :> Type. -Fail Check erefl : (_ : CountRing.UnitRing.type) = (_ : FinRing.Algebra.type) :> Type. -Fail Check erefl : (_ : CountRing.UnitRing.type) = (_ : FinRing.Lalgebra.type) :> Type. -Fail Check erefl : (_ : CountRing.UnitRing.type) = (_ : FinRing.Lmodule.type) :> Type. -Fail Check erefl : (_ : CountRing.UnitRing.type) = (_ : FinRing.ComRing.type) :> Type. +Check erefl : (_ : CountRing.Zmodule.type) = (_ : FinRing.Algebra.type) :> Type. +Check erefl : (_ : CountRing.ComRing.type) = (_ : FinRing.UnitRing.type) :> Type. +Check erefl : (_ : CountRing.UnitRing.type) = (_ : FinRing.Algebra.type) :> Type. +Check erefl : (_ : CountRing.UnitRing.type) = (_ : FinRing.Lalgebra.type) :> Type. +Check erefl : (_ : CountRing.UnitRing.type) = (_ : FinRing.Lmodule.type) :> Type. +Check erefl : (_ : CountRing.UnitRing.type) = (_ : FinRing.ComRing.type) :> Type. -- cgit v1.2.3 From 7ab5c99ab4c2ecfd55702a4279392f067652e357 Mon Sep 17 00:00:00 2001 From: Kazuhiko Sakaguchi Date: Wed, 3 Apr 2019 10:01:50 +0200 Subject: Fix inheritances in ssrnum --- mathcomp/algebra/ssrnum.v | 7 +++++-- mathcomp/test-suite/hierarchy_test.v | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) (limited to 'mathcomp') diff --git a/mathcomp/algebra/ssrnum.v b/mathcomp/algebra/ssrnum.v index 5e33c7f..a1975ff 100644 --- a/mathcomp/algebra/ssrnum.v +++ b/mathcomp/algebra/ssrnum.v @@ -419,6 +419,7 @@ Coercion numDomainType : type >-> NumDomain.type. Canonical numDomainType. Coercion fieldType : type >-> GRing.Field.type. Canonical fieldType. +Canonical join_numDomainType. Notation numFieldType := type. Notation "[ 'numFieldType' 'of' T ]" := (@pack T _ _ id _ _ id) (at level 0, format "[ 'numFieldType' 'of' T ]") : form_scope. @@ -627,7 +628,8 @@ Definition numDomainType := @NumDomain.Pack cT xclass. Definition realDomainType := @RealDomain.Pack cT xclass. Definition fieldType := @GRing.Field.Pack cT xclass. Definition numFieldType := @NumField.Pack cT xclass. -Definition join_realDomainType := @RealDomain.Pack numFieldType xclass. +Definition join_fieldType := @GRing.Field.Pack realDomainType xclass. +Definition join_numFieldType := @NumField.Pack realDomainType xclass. End ClassDef. @@ -660,7 +662,8 @@ Coercion fieldType : type >-> GRing.Field.type. Canonical fieldType. Coercion numFieldType : type >-> NumField.type. Canonical numFieldType. -Canonical join_realDomainType. +Canonical join_fieldType. +Canonical join_numFieldType. Notation realFieldType := type. Notation "[ 'realFieldType' 'of' T ]" := (@pack T _ _ id _ _ id) (at level 0, format "[ 'realFieldType' 'of' T ]") : form_scope. diff --git a/mathcomp/test-suite/hierarchy_test.v b/mathcomp/test-suite/hierarchy_test.v index 10564b9..a2bbf37 100644 --- a/mathcomp/test-suite/hierarchy_test.v +++ b/mathcomp/test-suite/hierarchy_test.v @@ -701,8 +701,8 @@ Check erefl : (_ : GRing.ComUnitRing.type) = (_ : GRing.UnitAlgebra.type) :> Typ Check erefl : (_ : GRing.Zmodule.type) = (_ : Num.ArchimedeanField.type) :> Type. (* fix in ssrnum *) -Fail Check erefl : (_ : GRing.Field.type) = (_ : Num.NumDomain.type) :> Type. -Fail Check erefl : (_ : GRing.Field.type) = (_ : Num.RealDomain.type) :> Type. +Check erefl : (_ : GRing.Field.type) = (_ : Num.NumDomain.type) :> Type. +Check erefl : (_ : GRing.Field.type) = (_ : Num.RealDomain.type) :> Type. (* fix in countalg *) Check erefl : (_ : CountRing.ClosedField.type) = (_ : CountRing.IntegralDomain.type) :> Type. -- cgit v1.2.3