aboutsummaryrefslogtreecommitdiff
path: root/docs/htmldoc/mathcomp.algebra.finalg.html
diff options
context:
space:
mode:
authorEnrico Tassi2018-04-20 10:54:22 +0200
committerEnrico Tassi2018-04-20 10:54:22 +0200
commited05182cece6bb3706e09b2ce14af4a41a2e8141 (patch)
treee850d7314b6372d0476cf2ffaf7d3830721db7b1 /docs/htmldoc/mathcomp.algebra.finalg.html
parent3d196f44681fb3b23ff8a79fbd44e12308680531 (diff)
generate the documentation for 1.7
Diffstat (limited to 'docs/htmldoc/mathcomp.algebra.finalg.html')
-rw-r--r--docs/htmldoc/mathcomp.algebra.finalg.html1414
1 files changed, 1414 insertions, 0 deletions
diff --git a/docs/htmldoc/mathcomp.algebra.finalg.html b/docs/htmldoc/mathcomp.algebra.finalg.html
new file mode 100644
index 0000000..75808e7
--- /dev/null
+++ b/docs/htmldoc/mathcomp.algebra.finalg.html
@@ -0,0 +1,1414 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link href="coqdoc.css" rel="stylesheet" type="text/css" />
+<title>mathcomp.algebra.finalg</title>
+</head>
+
+<body>
+
+<div id="page">
+
+<div id="header">
+</div>
+
+<div id="main">
+
+<h1 class="libtitle">Library mathcomp.algebra.finalg</h1>
+
+<div class="code">
+<span class="comment">(*&nbsp;(c)&nbsp;Copyright&nbsp;2006-2016&nbsp;Microsoft&nbsp;Corporation&nbsp;and&nbsp;Inria.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>
+&nbsp;Distributed&nbsp;under&nbsp;the&nbsp;terms&nbsp;of&nbsp;CeCILL-B.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*)</span><br/>
+<span class="id" title="keyword">Require</span> <span class="id" title="keyword">Import</span> <a class="idref" href="mathcomp.ssreflect.ssreflect.html#"><span class="id" title="library">mathcomp.ssreflect.ssreflect</span></a>.<br/>
+
+<br/>
+</div>
+
+<div class="doc">
+ This file clones the entire ssralg hierachy for finite types; this allows
+ type inference to function properly on expressions that mix combinatorial
+ and algebraic operators (e.g., [set x + y | x in A, y in A]).
+ finZmodType, finRingType, finComRingType, finUnitRingType,
+ finComUnitRingType, finIdomType, finFieldType finLmodType,
+ finLalgType finAlgType finUnitAlgType
+ == the finite counterparts of zmodType, etc.
+ Note that a finFieldType is canonically decidable. All these structures
+ can be derived using [xxxType of T] forms, e.g., if R has both canonical
+ finType and ringType structures, then
+ Canonical R_finRingType := Eval hnf in [finRingType of R].
+ declares the derived finRingType structure for R. As the implementation
+ of the derivation is somewhat involved, the Eval hnf normalization is
+ strongly recommended.
+ This file also provides direct tie-ins with finite group theory:
+ [baseFinGroupType of R for +%R] == the (canonical) additive group
+ [finGroupType of R for +%R] structures for R
+ {unit R} == the type of units of R, which has a
+ canonical group structure.
+ FinRing.unit R Ux == the element of {unit R} corresponding
+ to x, where Ux : x \in GRing.unit.
+ 'U%act == the action by right multiplication of
+ {unit R} on R, via FinRing.unit_act.
+ (This is also a group action.)
+</div>
+<div class="code">
+
+<br/>
+<span class="id" title="keyword">Local Open</span> <span class="id" title="keyword">Scope</span> <span class="id" title="var">ring_scope</span>.<br/>
+
+<br/>
+<span class="id" title="keyword">Set Implicit Arguments</span>.<br/>
+
+<br/>
+<span class="id" title="keyword">Module</span> <a name="FinRing"><span class="id" title="module">FinRing</span></a>.<br/>
+
+<br/>
+
+<br/>
+<span class="id" title="keyword">Section</span> <a name="FinRing.Generic"><span class="id" title="section">Generic</span></a>.<br/>
+
+<br/>
+</div>
+
+<div class="doc">
+ Implicits
+</div>
+<div class="code">
+<span class="id" title="keyword">Variables</span> (<a name="FinRing.Generic.type"><span class="id" title="variable">type</span></a> <a name="FinRing.Generic.base_type"><span class="id" title="variable">base_type</span></a> : <span class="id" title="keyword">Type</span>) (<a name="FinRing.Generic.class_of"><span class="id" title="variable">class_of</span></a> <a name="FinRing.Generic.base_of"><span class="id" title="variable">base_of</span></a> : <span class="id" title="keyword">Type</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <span class="id" title="keyword">Type</span>).<br/>
+<span class="id" title="keyword">Variable</span> <a name="FinRing.Generic.to_choice"><span class="id" title="variable">to_choice</span></a> : <span class="id" title="keyword">∀</span> <span class="id" title="var">T</span>, <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Generic.base_of"><span class="id" title="variable">base_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#T"><span class="id" title="variable">T</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.ssreflect.choice.html#Choice.class_of"><span class="id" title="record">Choice.class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#T"><span class="id" title="variable">T</span></a>.<br/>
+<span class="id" title="keyword">Variable</span> <a name="FinRing.Generic.base_sort"><span class="id" title="variable">base_sort</span></a> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Generic.base_type"><span class="id" title="variable">base_type</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <span class="id" title="keyword">Type</span>.<br/>
+
+<br/>
+</div>
+
+<div class="doc">
+ Explicits
+</div>
+<div class="code">
+<span class="id" title="keyword">Variable</span> <a name="FinRing.Generic.Pack"><span class="id" title="variable">Pack</span></a> : <span class="id" title="keyword">∀</span> <span class="id" title="var">T</span>, <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Generic.class_of"><span class="id" title="variable">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#T"><span class="id" title="variable">T</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <span class="id" title="keyword">Type</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Generic.type"><span class="id" title="variable">type</span></a>.<br/>
+<span class="id" title="keyword">Variable</span> <a name="FinRing.Generic.Class"><span class="id" title="variable">Class</span></a> : <span class="id" title="keyword">∀</span> <span class="id" title="var">T</span> <span class="id" title="var">b</span>, <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.mixin_of"><span class="id" title="abbreviation">mixin_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#T"><span class="id" title="variable">T</span></a> (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Generic.to_choice"><span class="id" title="variable">to_choice</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#b"><span class="id" title="variable">b</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Generic.class_of"><span class="id" title="variable">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#T"><span class="id" title="variable">T</span></a>.<br/>
+<span class="id" title="keyword">Variable</span> <a name="FinRing.Generic.base_class"><span class="id" title="variable">base_class</span></a> : <span class="id" title="keyword">∀</span> <span class="id" title="var">bT</span>, <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Generic.base_of"><span class="id" title="variable">base_of</span></a> (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Generic.base_sort"><span class="id" title="variable">base_sort</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#bT"><span class="id" title="variable">bT</span></a>).<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.gen_pack"><span class="id" title="definition">gen_pack</span></a> <span class="id" title="var">T</span> :=<br/>
+&nbsp;&nbsp;<span class="id" title="keyword">fun</span> <span class="id" title="var">bT</span> <span class="id" title="var">b</span> &amp; <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#phant_id"><span class="id" title="definition">phant_id</span></a> (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Generic.base_class"><span class="id" title="variable">base_class</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#bT"><span class="id" title="variable">bT</span></a>) <a class="idref" href="mathcomp.algebra.finalg.html#b"><span class="id" title="variable">b</span></a> ⇒<br/>
+&nbsp;&nbsp;<span class="id" title="keyword">fun</span> <span class="id" title="var">fT</span> <span class="id" title="var">m</span> &amp; <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#phant_id"><span class="id" title="definition">phant_id</span></a> (<a class="idref" href="mathcomp.ssreflect.fintype.html#Finite.class"><span class="id" title="definition">Finite.class</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#fT"><span class="id" title="variable">fT</span></a>) (<a class="idref" href="mathcomp.ssreflect.fintype.html#Finite.Class"><span class="id" title="constructor">Finite.Class</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#m"><span class="id" title="variable">m</span></a>) ⇒<br/>
+&nbsp;&nbsp;<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Generic.Pack"><span class="id" title="variable">Pack</span></a> (@<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Generic.Class"><span class="id" title="variable">Class</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#T"><span class="id" title="variable">T</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#b"><span class="id" title="variable">b</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#m"><span class="id" title="variable">m</span></a>) <a class="idref" href="mathcomp.algebra.finalg.html#T"><span class="id" title="variable">T</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Generic"><span class="id" title="section">Generic</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Import</span> <span class="id" title="var">GRing.Theory</span>.<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.groupMixin"><span class="id" title="definition">groupMixin</span></a> <span class="id" title="var">V</span> := <a class="idref" href="mathcomp.fingroup.fingroup.html#FinGroup.Mixin"><span class="id" title="definition">FinGroup.Mixin</span></a> (@<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Theory.addrA"><span class="id" title="definition">addrA</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#V"><span class="id" title="variable">V</span></a>) (@<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Theory.add0r"><span class="id" title="definition">add0r</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#V"><span class="id" title="variable">V</span></a>) (@<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Theory.addNr"><span class="id" title="definition">addNr</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#V"><span class="id" title="variable">V</span></a>).<br/>
+
+<br/>
+<span class="id" title="keyword">Module</span> <a name="FinRing.Zmodule"><span class="id" title="module">Zmodule</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Section</span> <a name="FinRing.Zmodule.ClassDef"><span class="id" title="section">ClassDef</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Record</span> <a name="FinRing.Zmodule.class_of"><span class="id" title="record">class_of</span></a> <span class="id" title="var">M</span> :=<br/>
+&nbsp;&nbsp;<a name="FinRing.Zmodule.Class"><span class="id" title="constructor">Class</span></a> { <a name="FinRing.Zmodule.base"><span class="id" title="projection">base</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Zmodule.class_of"><span class="id" title="record">GRing.Zmodule.class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#M"><span class="id" title="variable">M</span></a>; <a name="FinRing.Zmodule.mixin"><span class="id" title="projection">mixin</span></a> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.mixin_of"><span class="id" title="abbreviation">mixin_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#M"><span class="id" title="variable">M</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#base"><span class="id" title="method">base</span></a> }.<br/>
+
+<br/>
+<span class="id" title="keyword">Structure</span> <a name="FinRing.Zmodule.type"><span class="id" title="record">type</span></a> := <a name="FinRing.Zmodule.Pack"><span class="id" title="constructor">Pack</span></a> {<a name="FinRing.Zmodule.sort"><span class="id" title="projection">sort</span></a>; <span class="id" title="var">_</span> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.class_of"><span class="id" title="record">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#sort"><span class="id" title="method">sort</span></a>; <span class="id" title="var">_</span> : <span class="id" title="keyword">Type</span>}.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Zmodule.pack"><span class="id" title="definition">pack</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.gen_pack"><span class="id" title="definition">gen_pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.Pack"><span class="id" title="constructor">Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.Class"><span class="id" title="constructor">Class</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Zmodule.class"><span class="id" title="definition">GRing.Zmodule.class</span></a>.<br/>
+<span class="id" title="keyword">Variable</span> <a name="FinRing.Zmodule.ClassDef.cT"><span class="id" title="variable">cT</span></a> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.type"><span class="id" title="record">type</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Zmodule.class"><span class="id" title="definition">class</span></a> := <span class="id" title="keyword">let</span>: <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.Pack"><span class="id" title="constructor">Pack</span></a> <span class="id" title="var">_</span> <span class="id" title="var">c</span> <span class="id" title="var">_</span> <span class="id" title="keyword">as</span> <span class="id" title="var">cT'</span> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.ClassDef.cT"><span class="id" title="variable">cT</span></a> <span class="id" title="keyword">return</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.class_of"><span class="id" title="record">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#cT'"><span class="id" title="variable">cT'</span></a> <span class="id" title="tactic">in</span> <span class="id" title="var">c</span>.<br/>
+<span class="id" title="keyword">Let</span> <a name="FinRing.Zmodule.ClassDef.xT"><span class="id" title="variable">xT</span></a> := <span class="id" title="keyword">let</span>: <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.Pack"><span class="id" title="constructor">Pack</span></a> <span class="id" title="var">T</span> <span class="id" title="var">_</span> <span class="id" title="var">_</span> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.ClassDef.cT"><span class="id" title="variable">cT</span></a> <span class="id" title="tactic">in</span> <span class="id" title="var">T</span>.<br/>
+<span class="id" title="keyword">Notation</span> <a name="FinRing.Zmodule.xclass"><span class="id" title="abbreviation">xclass</span></a> := (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.class"><span class="id" title="definition">class</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#4509b22bf26e3d6d771897e22bd8bc8f"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.class_of"><span class="id" title="record">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.ClassDef.xT"><span class="id" title="variable">xT</span></a>).<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Zmodule.eqType"><span class="id" title="definition">eqType</span></a> := @<a class="idref" href="mathcomp.ssreflect.eqtype.html#Equality.Pack"><span class="id" title="constructor">Equality.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Zmodule.choiceType"><span class="id" title="definition">choiceType</span></a> := @<a class="idref" href="mathcomp.ssreflect.choice.html#Choice.Pack"><span class="id" title="constructor">Choice.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Zmodule.countType"><span class="id" title="definition">countType</span></a> := @<a class="idref" href="mathcomp.ssreflect.choice.html#Countable.Pack"><span class="id" title="constructor">Countable.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.ClassDef.cT"><span class="id" title="variable">cT</span></a> (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.fin_"><span class="id" title="abbreviation">fin_</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.xclass"><span class="id" title="abbreviation">xclass</span></a>) <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Zmodule.finType"><span class="id" title="definition">finType</span></a> := @<a class="idref" href="mathcomp.ssreflect.fintype.html#Finite.Pack"><span class="id" title="constructor">Finite.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.ClassDef.cT"><span class="id" title="variable">cT</span></a> (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.fin_"><span class="id" title="abbreviation">fin_</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.xclass"><span class="id" title="abbreviation">xclass</span></a>) <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Zmodule.zmodType"><span class="id" title="definition">zmodType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Zmodule.Pack"><span class="id" title="constructor">GRing.Zmodule.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Zmodule.join_finType"><span class="id" title="definition">join_finType</span></a> := @<a class="idref" href="mathcomp.ssreflect.fintype.html#Finite.Pack"><span class="id" title="constructor">Finite.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.zmodType"><span class="id" title="definition">zmodType</span></a> (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.fin_"><span class="id" title="abbreviation">fin_</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.xclass"><span class="id" title="abbreviation">xclass</span></a>) <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Zmodule.baseFinGroupType"><span class="id" title="definition">baseFinGroupType</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.base_group"><span class="id" title="abbreviation">base_group</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.zmodType"><span class="id" title="definition">zmodType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.finType"><span class="id" title="definition">finType</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Zmodule.finGroupType"><span class="id" title="definition">finGroupType</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.fin_group"><span class="id" title="abbreviation">fin_group</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.baseFinGroupType"><span class="id" title="definition">baseFinGroupType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.zmodType"><span class="id" title="definition">zmodType</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Zmodule.join_baseFinGroupType"><span class="id" title="definition">join_baseFinGroupType</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.base_group"><span class="id" title="abbreviation">base_group</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.zmodType"><span class="id" title="definition">zmodType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.zmodType"><span class="id" title="definition">zmodType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.finType"><span class="id" title="definition">finType</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Zmodule.join_finGroupType"><span class="id" title="definition">join_finGroupType</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.fin_group"><span class="id" title="abbreviation">fin_group</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.join_baseFinGroupType"><span class="id" title="definition">join_baseFinGroupType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.zmodType"><span class="id" title="definition">zmodType</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.ClassDef"><span class="id" title="section">ClassDef</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Module</span> <a name="FinRing.Zmodule.Exports"><span class="id" title="module">Exports</span></a>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.base"><span class="id" title="projection">base</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.base"><span class="id" title="projection">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.base"><span class="id" title="projection">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.base"><span class="id" title="projection">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.base"><span class="id" title="projection">GRing.Zmodule.class_of</span></a>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.mixin"><span class="id" title="projection">mixin</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.mixin"><span class="id" title="projection">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.mixin"><span class="id" title="projection">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.mixin"><span class="id" title="projection">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.mixin"><span class="id" title="projection">mixin_of</span></a>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.sort"><span class="id" title="projection">sort</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.sort"><span class="id" title="projection">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.sort"><span class="id" title="projection">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.sort"><span class="id" title="projection">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.sort"><span class="id" title="projection">Sortclass</span></a>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.eqType"><span class="id" title="definition">eqType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.eqType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.eqType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.eqType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.eqType"><span class="id" title="definition">Equality.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">eqType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.choiceType"><span class="id" title="definition">choiceType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.choiceType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.choiceType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.choiceType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.choiceType"><span class="id" title="definition">Choice.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">choiceType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.countType"><span class="id" title="definition">countType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.countType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.countType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.countType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.countType"><span class="id" title="definition">Countable.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">countType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.finType"><span class="id" title="definition">finType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.finType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.finType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.finType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.finType"><span class="id" title="definition">Finite.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">finType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.zmodType"><span class="id" title="definition">zmodType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.zmodType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.zmodType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.zmodType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.zmodType"><span class="id" title="definition">GRing.Zmodule.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">zmodType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_finType</span>.<br/>
+<span class="id" title="keyword">Notation</span> <a name="FinRing.Zmodule.Exports.finZmodType"><span class="id" title="abbreviation">finZmodType</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.type"><span class="id" title="record">type</span></a>.<br/>
+<span class="id" title="keyword">Notation</span> <a name="2980bb304205aec85bc1eeb5d0a573a5"><span class="id" title="notation">&quot;</span></a>[ 'finZmodType' 'of' T ]" := (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.do_pack"><span class="id" title="abbreviation">do_pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.pack"><span class="id" title="definition">pack</span></a> <span class="id" title="var">T</span>)<br/>
+&nbsp;&nbsp;(<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 0, <span class="id" title="var">format</span> "[ 'finZmodType' 'of' T ]") : <span class="id" title="var">form_scope</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.baseFinGroupType"><span class="id" title="definition">baseFinGroupType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.baseFinGroupType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.baseFinGroupType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.baseFinGroupType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.baseFinGroupType"><span class="id" title="definition">FinGroup.base_type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">baseFinGroupType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.finGroupType"><span class="id" title="definition">finGroupType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.finGroupType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.finGroupType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.finGroupType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.finGroupType"><span class="id" title="definition">FinGroup.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">finGroupType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_baseFinGroupType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_finGroupType</span>.<br/>
+<span class="id" title="keyword">Notation</span> <a name="ee332ddd6e3626489ee70ea4c624f1cd"><span class="id" title="notation">&quot;</span></a>[ 'baseFinGroupType' 'of' R 'for' +%R ]" :=<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;(<a class="idref" href="mathcomp.fingroup.fingroup.html#FinGroup.Exports.BaseFinGroupType"><span class="id" title="abbreviation">BaseFinGroupType</span></a> <span class="id" title="var">R</span> (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.groupMixin"><span class="id" title="definition">groupMixin</span></a> <span class="id" title="var">_</span>))<br/>
+&nbsp;&nbsp;(<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 0, <span class="id" title="var">format</span> "[ 'baseFinGroupType' 'of' R 'for' +%R ]")<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;: <span class="id" title="var">form_scope</span>.<br/>
+<span class="id" title="keyword">Notation</span> <a name="ad4d9ed93eeed8e8e57c81c6e35699c4"><span class="id" title="notation">&quot;</span></a>[ 'finGroupType' 'of' R 'for' +%R ]" :=<br/>
+&nbsp;&nbsp;&nbsp;&nbsp;(@<a class="idref" href="mathcomp.fingroup.fingroup.html#FinGroup.clone"><span class="id" title="definition">FinGroup.clone</span></a> <span class="id" title="var">R</span> <span class="id" title="var">_</span> (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.finGroupType"><span class="id" title="definition">finGroupType</span></a> <span class="id" title="var">_</span>) <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#id"><span class="id" title="abbreviation">id</span></a> <span class="id" title="var">_</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#id"><span class="id" title="abbreviation">id</span></a>)<br/>
+&nbsp;&nbsp;(<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 0, <span class="id" title="var">format</span> "[ 'finGroupType' 'of' R 'for' +%R ]") : <span class="id" title="var">form_scope</span>.<br/>
+<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.Exports"><span class="id" title="module">Exports</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule"><span class="id" title="module">Zmodule</span></a>.<br/>
+<span class="id" title="keyword">Import</span> <span class="id" title="var">Zmodule.Exports</span>.<br/>
+
+<br/>
+<span class="id" title="keyword">Section</span> <a name="FinRing.AdditiveGroup"><span class="id" title="section">AdditiveGroup</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Variable</span> <a name="FinRing.AdditiveGroup.U"><span class="id" title="variable">U</span></a> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.finZmodType"><span class="id" title="abbreviation">finZmodType</span></a>.<br/>
+<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Types</span> <span class="id" title="var">x</span> <span class="id" title="var">y</span> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.AdditiveGroup.U"><span class="id" title="variable">U</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="FinRing.zmod1gE"><span class="id" title="lemma">zmod1gE</span></a> : 1%<span class="id" title="var">g</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#8f9364556521ebb498093f28eea2240f"><span class="id" title="notation">=</span></a> 0 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#8f9364556521ebb498093f28eea2240f"><span class="id" title="notation">:&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.AdditiveGroup.U"><span class="id" title="variable">U</span></a>. <br/>
+<span class="id" title="keyword">Lemma</span> <a name="FinRing.zmodVgE"><span class="id" title="lemma">zmodVgE</span></a> <span class="id" title="var">x</span> : <a class="idref" href="mathcomp.algebra.finalg.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#a605acbeae7597f74f5a9b816ed8a717"><span class="id" title="notation">^-1</span></a>%<span class="id" title="var">g</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#941c6d086004545bd62614d0213e75e5"><span class="id" title="notation">-</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#x"><span class="id" title="variable">x</span></a>. <br/>
+<span class="id" title="keyword">Lemma</span> <a name="FinRing.zmodMgE"><span class="id" title="lemma">zmodMgE</span></a> <span class="id" title="var">x</span> <span class="id" title="var">y</span> : (<a class="idref" href="mathcomp.algebra.finalg.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#169fb610eeaa28cebf8ec36928167473"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#y"><span class="id" title="variable">y</span></a>)%<span class="id" title="var">g</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#ae4d81913e6239182a9ac7467ffde8cd"><span class="id" title="notation">+</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#y"><span class="id" title="variable">y</span></a>. <br/>
+<span class="id" title="keyword">Lemma</span> <a name="FinRing.zmodXgE"><span class="id" title="lemma">zmodXgE</span></a> <span class="id" title="var">n</span> <span class="id" title="var">x</span> : (<a class="idref" href="mathcomp.algebra.finalg.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#86a04fb564fb97d388cad84a3a204260"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#n"><span class="id" title="variable">n</span></a>)%<span class="id" title="var">g</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#891e51846c7d1d63a9cb5458374cf308"><span class="id" title="notation">*+</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#n"><span class="id" title="variable">n</span></a>. <br/>
+<span class="id" title="keyword">Lemma</span> <a name="FinRing.zmod_mulgC"><span class="id" title="lemma">zmod_mulgC</span></a> <span class="id" title="var">x</span> <span class="id" title="var">y</span> : <a class="idref" href="mathcomp.fingroup.fingroup.html#commute"><span class="id" title="definition">commute</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#y"><span class="id" title="variable">y</span></a>. <br/>
+<span class="id" title="keyword">Lemma</span> <a name="FinRing.zmod_abelian"><span class="id" title="lemma">zmod_abelian</span></a> (<span class="id" title="var">A</span> : <a class="idref" href="mathcomp.ssreflect.finset.html#0fec877de6d09ef39abb9b599a84eb0e"><span class="id" title="notation">{</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#0fec877de6d09ef39abb9b599a84eb0e"><span class="id" title="notation">set</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.AdditiveGroup.U"><span class="id" title="variable">U</span></a><a class="idref" href="mathcomp.ssreflect.finset.html#0fec877de6d09ef39abb9b599a84eb0e"><span class="id" title="notation">}</span></a>) : <a class="idref" href="mathcomp.fingroup.fingroup.html#abelian"><span class="id" title="definition">abelian</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#A"><span class="id" title="variable">A</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.AdditiveGroup"><span class="id" title="section">AdditiveGroup</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Module</span> <a name="FinRing.Ring"><span class="id" title="module">Ring</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Section</span> <a name="FinRing.Ring.ClassDef"><span class="id" title="section">ClassDef</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Record</span> <a name="FinRing.Ring.class_of"><span class="id" title="record">class_of</span></a> <span class="id" title="var">R</span> :=<br/>
+&nbsp;&nbsp;<a name="FinRing.Ring.Class"><span class="id" title="constructor">Class</span></a> { <a name="FinRing.Ring.base"><span class="id" title="projection">base</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Ring.class_of"><span class="id" title="record">GRing.Ring.class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#R"><span class="id" title="variable">R</span></a>; <a name="FinRing.Ring.mixin"><span class="id" title="projection">mixin</span></a> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.mixin_of"><span class="id" title="abbreviation">mixin_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#base"><span class="id" title="method">base</span></a> }.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Ring.base2"><span class="id" title="definition">base2</span></a> <span class="id" title="var">R</span> (<span class="id" title="var">c</span> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.class_of"><span class="id" title="record">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#R"><span class="id" title="variable">R</span></a>) := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.Class"><span class="id" title="constructor">Zmodule.Class</span></a> (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.mixin"><span class="id" title="projection">mixin</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#c"><span class="id" title="variable">c</span></a>).<br/>
+
+<br/>
+<span class="id" title="keyword">Structure</span> <a name="FinRing.Ring.type"><span class="id" title="record">type</span></a> := <a name="FinRing.Ring.Pack"><span class="id" title="constructor">Pack</span></a> {<a name="FinRing.Ring.sort"><span class="id" title="projection">sort</span></a>; <span class="id" title="var">_</span> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.class_of"><span class="id" title="record">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#sort"><span class="id" title="method">sort</span></a>; <span class="id" title="var">_</span> : <span class="id" title="keyword">Type</span>}.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Ring.pack"><span class="id" title="definition">pack</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.gen_pack"><span class="id" title="definition">gen_pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.Pack"><span class="id" title="constructor">Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.Class"><span class="id" title="constructor">Class</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Ring.class"><span class="id" title="definition">GRing.Ring.class</span></a>.<br/>
+<span class="id" title="keyword">Variable</span> <a name="FinRing.Ring.ClassDef.cT"><span class="id" title="variable">cT</span></a> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.type"><span class="id" title="record">type</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Ring.class"><span class="id" title="definition">class</span></a> := <span class="id" title="keyword">let</span>: <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.Pack"><span class="id" title="constructor">Pack</span></a> <span class="id" title="var">_</span> <span class="id" title="var">c</span> <span class="id" title="var">_</span> <span class="id" title="keyword">as</span> <span class="id" title="var">cT'</span> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.ClassDef.cT"><span class="id" title="variable">cT</span></a> <span class="id" title="keyword">return</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.class_of"><span class="id" title="record">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#cT'"><span class="id" title="variable">cT'</span></a> <span class="id" title="tactic">in</span> <span class="id" title="var">c</span>.<br/>
+<span class="id" title="keyword">Let</span> <a name="FinRing.Ring.ClassDef.xT"><span class="id" title="variable">xT</span></a> := <span class="id" title="keyword">let</span>: <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.Pack"><span class="id" title="constructor">Pack</span></a> <span class="id" title="var">T</span> <span class="id" title="var">_</span> <span class="id" title="var">_</span> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.ClassDef.cT"><span class="id" title="variable">cT</span></a> <span class="id" title="tactic">in</span> <span class="id" title="var">T</span>.<br/>
+<span class="id" title="keyword">Notation</span> <a name="FinRing.Ring.xclass"><span class="id" title="abbreviation">xclass</span></a> := (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.class"><span class="id" title="definition">class</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#4509b22bf26e3d6d771897e22bd8bc8f"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.class_of"><span class="id" title="record">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.ClassDef.xT"><span class="id" title="variable">xT</span></a>).<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Ring.eqType"><span class="id" title="definition">eqType</span></a> := @<a class="idref" href="mathcomp.ssreflect.eqtype.html#Equality.Pack"><span class="id" title="constructor">Equality.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Ring.choiceType"><span class="id" title="definition">choiceType</span></a> := @<a class="idref" href="mathcomp.ssreflect.choice.html#Choice.Pack"><span class="id" title="constructor">Choice.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Ring.countType"><span class="id" title="definition">countType</span></a> := @<a class="idref" href="mathcomp.ssreflect.choice.html#Countable.Pack"><span class="id" title="constructor">Countable.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.ClassDef.cT"><span class="id" title="variable">cT</span></a> (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.fin_"><span class="id" title="abbreviation">fin_</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.xclass"><span class="id" title="abbreviation">xclass</span></a>) <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Ring.finType"><span class="id" title="definition">finType</span></a> := @<a class="idref" href="mathcomp.ssreflect.fintype.html#Finite.Pack"><span class="id" title="constructor">Finite.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.ClassDef.cT"><span class="id" title="variable">cT</span></a> (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.fin_"><span class="id" title="abbreviation">fin_</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.xclass"><span class="id" title="abbreviation">xclass</span></a>) <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.ClassDef.cT"><span class="id" title="variable">cT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Ring.zmodType"><span class="id" title="definition">zmodType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Zmodule.Pack"><span class="id" title="constructor">GRing.Zmodule.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.ClassDef.cT"><span class="id" title="variable">cT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Ring.finZmodType"><span class="id" title="definition">finZmodType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.Pack"><span class="id" title="constructor">Zmodule.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Ring.ringType"><span class="id" title="definition">ringType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Ring.Pack"><span class="id" title="constructor">GRing.Ring.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Ring.join_finType"><span class="id" title="definition">join_finType</span></a> := @<a class="idref" href="mathcomp.ssreflect.fintype.html#Finite.Pack"><span class="id" title="constructor">Finite.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.ringType"><span class="id" title="definition">ringType</span></a> (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.fin_"><span class="id" title="abbreviation">fin_</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.xclass"><span class="id" title="abbreviation">xclass</span></a>) <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Ring.join_finZmodType"><span class="id" title="definition">join_finZmodType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.Pack"><span class="id" title="constructor">Zmodule.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.ringType"><span class="id" title="definition">ringType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Ring.baseFinGroupType"><span class="id" title="definition">baseFinGroupType</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.base_group"><span class="id" title="abbreviation">base_group</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.zmodType"><span class="id" title="definition">zmodType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.finType"><span class="id" title="definition">finType</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Ring.finGroupType"><span class="id" title="definition">finGroupType</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.fin_group"><span class="id" title="abbreviation">fin_group</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.baseFinGroupType"><span class="id" title="definition">baseFinGroupType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.zmodType"><span class="id" title="definition">zmodType</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Ring.join_baseFinGroupType"><span class="id" title="definition">join_baseFinGroupType</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.base_group"><span class="id" title="abbreviation">base_group</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.ringType"><span class="id" title="definition">ringType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.zmodType"><span class="id" title="definition">zmodType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.finType"><span class="id" title="definition">finType</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Ring.join_finGroupType"><span class="id" title="definition">join_finGroupType</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.fin_group"><span class="id" title="abbreviation">fin_group</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.join_baseFinGroupType"><span class="id" title="definition">join_baseFinGroupType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.zmodType"><span class="id" title="definition">zmodType</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.ClassDef"><span class="id" title="section">ClassDef</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Module</span> <span class="id" title="keyword">Import</span> <a name="FinRing.Ring.Exports"><span class="id" title="module">Exports</span></a>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.base"><span class="id" title="projection">base</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.base"><span class="id" title="projection">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.base"><span class="id" title="projection">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.base"><span class="id" title="projection">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.base"><span class="id" title="projection">GRing.Ring.class_of</span></a>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.base2"><span class="id" title="definition">base2</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.base2"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.base2"><span class="id" title="definition">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.base2"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.base2"><span class="id" title="definition">Zmodule.class_of</span></a>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.sort"><span class="id" title="projection">sort</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.sort"><span class="id" title="projection">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.sort"><span class="id" title="projection">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.sort"><span class="id" title="projection">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.sort"><span class="id" title="projection">Sortclass</span></a>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.eqType"><span class="id" title="definition">eqType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.eqType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.eqType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.eqType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.eqType"><span class="id" title="definition">Equality.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">eqType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.choiceType"><span class="id" title="definition">choiceType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.choiceType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.choiceType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.choiceType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.choiceType"><span class="id" title="definition">Choice.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">choiceType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.countType"><span class="id" title="definition">countType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.countType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.countType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.countType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.countType"><span class="id" title="definition">Countable.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">countType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.finType"><span class="id" title="definition">finType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.finType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.finType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.finType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.finType"><span class="id" title="definition">Finite.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">finType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.zmodType"><span class="id" title="definition">zmodType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.zmodType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.zmodType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.zmodType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.zmodType"><span class="id" title="definition">GRing.Zmodule.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">zmodType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.finZmodType"><span class="id" title="definition">finZmodType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.finZmodType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.finZmodType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.finZmodType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.finZmodType"><span class="id" title="definition">Zmodule.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">finZmodType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.ringType"><span class="id" title="definition">ringType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.ringType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.ringType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.ringType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.ringType"><span class="id" title="definition">GRing.Ring.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">ringType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_finType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_finZmodType</span>.<br/>
+<span class="id" title="keyword">Notation</span> <a name="FinRing.Ring.Exports.finRingType"><span class="id" title="abbreviation">finRingType</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.type"><span class="id" title="record">type</span></a>.<br/>
+<span class="id" title="keyword">Notation</span> <a name="cf58bd711195f609ec57107fc402496c"><span class="id" title="notation">&quot;</span></a>[ 'finRingType' 'of' T ]" := (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.do_pack"><span class="id" title="abbreviation">do_pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.pack"><span class="id" title="definition">pack</span></a> <span class="id" title="var">T</span>)<br/>
+&nbsp;&nbsp;(<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 0, <span class="id" title="var">format</span> "[ 'finRingType' 'of' T ]") : <span class="id" title="var">form_scope</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">baseFinGroupType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">finGroupType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_baseFinGroupType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_finGroupType</span>.<br/>
+<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.Exports"><span class="id" title="module">Exports</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Section</span> <a name="FinRing.Ring.Unit"><span class="id" title="section">Unit</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Variable</span> <a name="FinRing.Ring.Unit.R"><span class="id" title="variable">R</span></a> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.finRingType"><span class="id" title="abbreviation">finRingType</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Ring.is_inv"><span class="id" title="definition">is_inv</span></a> (<span class="id" title="var">x</span> <span class="id" title="var">y</span> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.Unit.R"><span class="id" title="variable">R</span></a>) := <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.finalg.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#y"><span class="id" title="variable">y</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 1<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">)</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">&amp;&amp;</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.algebra.finalg.html#y"><span class="id" title="variable">y</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> 1<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">)</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Ring.unit"><span class="id" title="definition">unit</span></a> := <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#3838d61fb3e8125493e649946f677b04"><span class="id" title="notation">[</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#3838d61fb3e8125493e649946f677b04"><span class="id" title="notation">qualify</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#3838d61fb3e8125493e649946f677b04"><span class="id" title="notation">a</span></a> <span class="id" title="var">x</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#3838d61fb3e8125493e649946f677b04"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.Unit.R"><span class="id" title="variable">R</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#3838d61fb3e8125493e649946f677b04"><span class="id" title="notation">|</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#e1fcc6c8b4370f06a39f9b1b3c9764b2"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#e1fcc6c8b4370f06a39f9b1b3c9764b2"><span class="id" title="notation">∃</span></a> <span class="id" title="var">y</span><a class="idref" href="mathcomp.ssreflect.fintype.html#46e5a4123d46e6b126f7788a77176785"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.is_inv"><span class="id" title="definition">is_inv</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#y"><span class="id" title="variable">y</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#e1fcc6c8b4370f06a39f9b1b3c9764b2"><span class="id" title="notation">]</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#3838d61fb3e8125493e649946f677b04"><span class="id" title="notation">]</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Ring.inv"><span class="id" title="definition">inv</span></a> <span class="id" title="var">x</span> := <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#odflt"><span class="id" title="abbreviation">odflt</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#x"><span class="id" title="variable">x</span></a> (<a class="idref" href="mathcomp.ssreflect.fintype.html#pick"><span class="id" title="definition">pick</span></a> (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.is_inv"><span class="id" title="definition">is_inv</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#x"><span class="id" title="variable">x</span></a>)).<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="FinRing.Ring.mulVr"><span class="id" title="lemma">mulVr</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.unit"><span class="id" title="definition">unit</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">,</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#left_inverse"><span class="id" title="definition">left_inverse</span></a> 1 <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.inv"><span class="id" title="definition">inv</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#d5d4e2467843f67554f1a8a22d125de9"><span class="id" title="notation">*%</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#d5d4e2467843f67554f1a8a22d125de9"><span class="id" title="notation">R</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">}</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="FinRing.Ring.mulrV"><span class="id" title="lemma">mulrV</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">in</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.unit"><span class="id" title="definition">unit</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">,</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#right_inverse"><span class="id" title="definition">right_inverse</span></a> 1 <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.inv"><span class="id" title="definition">inv</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#d5d4e2467843f67554f1a8a22d125de9"><span class="id" title="notation">*%</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#d5d4e2467843f67554f1a8a22d125de9"><span class="id" title="notation">R</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">}</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="FinRing.Ring.intro_unit"><span class="id" title="lemma">intro_unit</span></a> <span class="id" title="var">x</span> <span class="id" title="var">y</span> : <a class="idref" href="mathcomp.algebra.finalg.html#y"><span class="id" title="variable">y</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 1 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d82a7d96d3659d805ffe732283716822"><span class="id" title="notation">∧</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#y"><span class="id" title="variable">y</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 1 <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#d43e996736952df71ebeeae74d10a287"><span class="id" title="notation">→</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">is</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">a</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.unit"><span class="id" title="definition">unit</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="FinRing.Ring.invr_out"><span class="id" title="lemma">invr_out</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">{</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">in</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#c2f58fba484177bda65c2ab1289a6fe6"><span class="id" title="notation">[</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#c2f58fba484177bda65c2ab1289a6fe6"><span class="id" title="notation">predC</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.unit"><span class="id" title="definition">unit</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#c2f58fba484177bda65c2ab1289a6fe6"><span class="id" title="notation">]</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.inv"><span class="id" title="definition">inv</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#2500d48ed8e862ccfda98a44dff88963"><span class="id" title="notation">=1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#id"><span class="id" title="abbreviation">id</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#5c59b35a0b51db520cf1fba473ecf127"><span class="id" title="notation">}</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Ring.UnitMixin"><span class="id" title="definition">UnitMixin</span></a> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.UnitRing.Mixin"><span class="id" title="constructor">GRing.UnitRing.Mixin</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.mulVr"><span class="id" title="lemma">mulVr</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.mulrV"><span class="id" title="lemma">mulrV</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.intro_unit"><span class="id" title="lemma">intro_unit</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.invr_out"><span class="id" title="lemma">invr_out</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.Unit"><span class="id" title="section">Unit</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring"><span class="id" title="module">Ring</span></a>.<br/>
+<span class="id" title="keyword">Import</span> <span class="id" title="var">Ring.Exports</span>.<br/>
+
+<br/>
+<span class="id" title="keyword">Module</span> <a name="FinRing.ComRing"><span class="id" title="module">ComRing</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Section</span> <a name="FinRing.ComRing.ClassDef"><span class="id" title="section">ClassDef</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Record</span> <a name="FinRing.ComRing.class_of"><span class="id" title="record">class_of</span></a> <span class="id" title="var">R</span> :=<br/>
+&nbsp;&nbsp;<a name="FinRing.ComRing.Class"><span class="id" title="constructor">Class</span></a> { <a name="FinRing.ComRing.base"><span class="id" title="projection">base</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.ComRing.class_of"><span class="id" title="record">GRing.ComRing.class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#R"><span class="id" title="variable">R</span></a>; <a name="FinRing.ComRing.mixin"><span class="id" title="projection">mixin</span></a> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.mixin_of"><span class="id" title="abbreviation">mixin_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#base"><span class="id" title="method">base</span></a> }.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.ComRing.base2"><span class="id" title="definition">base2</span></a> <span class="id" title="var">R</span> (<span class="id" title="var">c</span> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.class_of"><span class="id" title="record">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#R"><span class="id" title="variable">R</span></a>) := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.Class"><span class="id" title="constructor">Ring.Class</span></a> (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.mixin"><span class="id" title="projection">mixin</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#c"><span class="id" title="variable">c</span></a>).<br/>
+
+<br/>
+<span class="id" title="keyword">Structure</span> <a name="FinRing.ComRing.type"><span class="id" title="record">type</span></a> := <a name="FinRing.ComRing.Pack"><span class="id" title="constructor">Pack</span></a> {<a name="FinRing.ComRing.sort"><span class="id" title="projection">sort</span></a>; <span class="id" title="var">_</span> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.class_of"><span class="id" title="record">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#sort"><span class="id" title="method">sort</span></a>; <span class="id" title="var">_</span> : <span class="id" title="keyword">Type</span>}.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.ComRing.pack"><span class="id" title="definition">pack</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.gen_pack"><span class="id" title="definition">gen_pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.Pack"><span class="id" title="constructor">Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.Class"><span class="id" title="constructor">Class</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.ComRing.class"><span class="id" title="definition">GRing.ComRing.class</span></a>.<br/>
+<span class="id" title="keyword">Variable</span> <a name="FinRing.ComRing.ClassDef.cT"><span class="id" title="variable">cT</span></a> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.type"><span class="id" title="record">type</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.ComRing.class"><span class="id" title="definition">class</span></a> := <span class="id" title="keyword">let</span>: <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.Pack"><span class="id" title="constructor">Pack</span></a> <span class="id" title="var">_</span> <span class="id" title="var">c</span> <span class="id" title="var">_</span> <span class="id" title="keyword">as</span> <span class="id" title="var">cT'</span> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.ClassDef.cT"><span class="id" title="variable">cT</span></a> <span class="id" title="keyword">return</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.class_of"><span class="id" title="record">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#cT'"><span class="id" title="variable">cT'</span></a> <span class="id" title="tactic">in</span> <span class="id" title="var">c</span>.<br/>
+<span class="id" title="keyword">Let</span> <a name="FinRing.ComRing.ClassDef.xT"><span class="id" title="variable">xT</span></a> := <span class="id" title="keyword">let</span>: <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.Pack"><span class="id" title="constructor">Pack</span></a> <span class="id" title="var">T</span> <span class="id" title="var">_</span> <span class="id" title="var">_</span> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.ClassDef.cT"><span class="id" title="variable">cT</span></a> <span class="id" title="tactic">in</span> <span class="id" title="var">T</span>.<br/>
+<span class="id" title="keyword">Notation</span> <a name="FinRing.ComRing.xclass"><span class="id" title="abbreviation">xclass</span></a> := (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.class"><span class="id" title="definition">class</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#4509b22bf26e3d6d771897e22bd8bc8f"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.class_of"><span class="id" title="record">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.ClassDef.xT"><span class="id" title="variable">xT</span></a>).<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.ComRing.eqType"><span class="id" title="definition">eqType</span></a> := @<a class="idref" href="mathcomp.ssreflect.eqtype.html#Equality.Pack"><span class="id" title="constructor">Equality.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.ComRing.choiceType"><span class="id" title="definition">choiceType</span></a> := @<a class="idref" href="mathcomp.ssreflect.choice.html#Choice.Pack"><span class="id" title="constructor">Choice.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.ComRing.countType"><span class="id" title="definition">countType</span></a> := @<a class="idref" href="mathcomp.ssreflect.choice.html#Countable.Pack"><span class="id" title="constructor">Countable.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.ClassDef.cT"><span class="id" title="variable">cT</span></a> (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.fin_"><span class="id" title="abbreviation">fin_</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.xclass"><span class="id" title="abbreviation">xclass</span></a>) <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.ComRing.finType"><span class="id" title="definition">finType</span></a> := @<a class="idref" href="mathcomp.ssreflect.fintype.html#Finite.Pack"><span class="id" title="constructor">Finite.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.ClassDef.cT"><span class="id" title="variable">cT</span></a> (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.fin_"><span class="id" title="abbreviation">fin_</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.xclass"><span class="id" title="abbreviation">xclass</span></a>) <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.ComRing.zmodType"><span class="id" title="definition">zmodType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Zmodule.Pack"><span class="id" title="constructor">GRing.Zmodule.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.ComRing.finZmodType"><span class="id" title="definition">finZmodType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.Pack"><span class="id" title="constructor">Zmodule.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.ComRing.ringType"><span class="id" title="definition">ringType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Ring.Pack"><span class="id" title="constructor">GRing.Ring.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.ComRing.finRingType"><span class="id" title="definition">finRingType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.Pack"><span class="id" title="constructor">Ring.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.ComRing.comRingType"><span class="id" title="definition">comRingType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.ComRing.Pack"><span class="id" title="constructor">GRing.ComRing.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.ComRing.join_finType"><span class="id" title="definition">join_finType</span></a> := @<a class="idref" href="mathcomp.ssreflect.fintype.html#Finite.Pack"><span class="id" title="constructor">Finite.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.comRingType"><span class="id" title="definition">comRingType</span></a> (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.fin_"><span class="id" title="abbreviation">fin_</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.xclass"><span class="id" title="abbreviation">xclass</span></a>) <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.ComRing.join_finZmodType"><span class="id" title="definition">join_finZmodType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.Pack"><span class="id" title="constructor">Zmodule.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.comRingType"><span class="id" title="definition">comRingType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.ComRing.join_finRingType"><span class="id" title="definition">join_finRingType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.Pack"><span class="id" title="constructor">Ring.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.comRingType"><span class="id" title="definition">comRingType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.ComRing.baseFinGroupType"><span class="id" title="definition">baseFinGroupType</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.base_group"><span class="id" title="abbreviation">base_group</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.zmodType"><span class="id" title="definition">zmodType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.finType"><span class="id" title="definition">finType</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.ComRing.finGroupType"><span class="id" title="definition">finGroupType</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.fin_group"><span class="id" title="abbreviation">fin_group</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.baseFinGroupType"><span class="id" title="definition">baseFinGroupType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.zmodType"><span class="id" title="definition">zmodType</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.ComRing.join_baseFinGroupType"><span class="id" title="definition">join_baseFinGroupType</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.base_group"><span class="id" title="abbreviation">base_group</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.comRingType"><span class="id" title="definition">comRingType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.zmodType"><span class="id" title="definition">zmodType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.finType"><span class="id" title="definition">finType</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.ComRing.join_finGroupType"><span class="id" title="definition">join_finGroupType</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.fin_group"><span class="id" title="abbreviation">fin_group</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.join_baseFinGroupType"><span class="id" title="definition">join_baseFinGroupType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.zmodType"><span class="id" title="definition">zmodType</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.ClassDef"><span class="id" title="section">ClassDef</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Module</span> <a name="FinRing.ComRing.Exports"><span class="id" title="module">Exports</span></a>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.base"><span class="id" title="projection">base</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.base"><span class="id" title="projection">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.base"><span class="id" title="projection">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.base"><span class="id" title="projection">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.base"><span class="id" title="projection">GRing.ComRing.class_of</span></a>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.base2"><span class="id" title="definition">base2</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.base2"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.base2"><span class="id" title="definition">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.base2"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.base2"><span class="id" title="definition">Ring.class_of</span></a>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.sort"><span class="id" title="projection">sort</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.sort"><span class="id" title="projection">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.sort"><span class="id" title="projection">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.sort"><span class="id" title="projection">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.sort"><span class="id" title="projection">Sortclass</span></a>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.eqType"><span class="id" title="definition">eqType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.eqType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.eqType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.eqType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.eqType"><span class="id" title="definition">Equality.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">eqType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.choiceType"><span class="id" title="definition">choiceType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.choiceType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.choiceType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.choiceType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.choiceType"><span class="id" title="definition">Choice.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">choiceType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.countType"><span class="id" title="definition">countType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.countType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.countType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.countType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.countType"><span class="id" title="definition">Countable.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">countType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.finType"><span class="id" title="definition">finType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.finType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.finType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.finType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.finType"><span class="id" title="definition">Finite.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">finType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.zmodType"><span class="id" title="definition">zmodType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.zmodType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.zmodType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.zmodType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.zmodType"><span class="id" title="definition">GRing.Zmodule.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">zmodType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.finZmodType"><span class="id" title="definition">finZmodType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.finZmodType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.finZmodType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.finZmodType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.finZmodType"><span class="id" title="definition">Zmodule.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">finZmodType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.ringType"><span class="id" title="definition">ringType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.ringType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.ringType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.ringType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.ringType"><span class="id" title="definition">GRing.Ring.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">ringType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.finRingType"><span class="id" title="definition">finRingType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.finRingType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.finRingType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.finRingType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.finRingType"><span class="id" title="definition">Ring.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">finRingType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.comRingType"><span class="id" title="definition">comRingType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.comRingType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.comRingType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.comRingType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.comRingType"><span class="id" title="definition">GRing.ComRing.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">comRingType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_finType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_finZmodType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_finRingType</span>.<br/>
+<span class="id" title="keyword">Notation</span> <a name="FinRing.ComRing.Exports.finComRingType"><span class="id" title="abbreviation">finComRingType</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.type"><span class="id" title="record">FinRing.ComRing.type</span></a>.<br/>
+<span class="id" title="keyword">Notation</span> <a name="381777e14bce98b548cb274563c7fc56"><span class="id" title="notation">&quot;</span></a>[ 'finComRingType' 'of' T ]" := (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.do_pack"><span class="id" title="abbreviation">do_pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.pack"><span class="id" title="definition">pack</span></a> <span class="id" title="var">T</span>)<br/>
+&nbsp;&nbsp;(<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 0, <span class="id" title="var">format</span> "[ 'finComRingType' 'of' T ]") : <span class="id" title="var">form_scope</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">baseFinGroupType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">finGroupType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_baseFinGroupType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_finGroupType</span>.<br/>
+<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.Exports"><span class="id" title="module">Exports</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing"><span class="id" title="module">ComRing</span></a>.<br/>
+<span class="id" title="keyword">Import</span> <span class="id" title="var">ComRing.Exports</span>.<br/>
+
+<br/>
+<span class="id" title="keyword">Module</span> <a name="FinRing.UnitRing"><span class="id" title="module">UnitRing</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Section</span> <a name="FinRing.UnitRing.ClassDef"><span class="id" title="section">ClassDef</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Record</span> <a name="FinRing.UnitRing.class_of"><span class="id" title="record">class_of</span></a> <span class="id" title="var">R</span> :=<br/>
+&nbsp;&nbsp;<a name="FinRing.UnitRing.Class"><span class="id" title="constructor">Class</span></a> { <a name="FinRing.UnitRing.base"><span class="id" title="projection">base</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.UnitRing.class_of"><span class="id" title="record">GRing.UnitRing.class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#R"><span class="id" title="variable">R</span></a>; <a name="FinRing.UnitRing.mixin"><span class="id" title="projection">mixin</span></a> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.mixin_of"><span class="id" title="abbreviation">mixin_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#base"><span class="id" title="method">base</span></a> }.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.UnitRing.base2"><span class="id" title="definition">base2</span></a> <span class="id" title="var">R</span> (<span class="id" title="var">c</span> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.class_of"><span class="id" title="record">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#R"><span class="id" title="variable">R</span></a>) := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.Class"><span class="id" title="constructor">Ring.Class</span></a> (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.mixin"><span class="id" title="projection">mixin</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#c"><span class="id" title="variable">c</span></a>).<br/>
+
+<br/>
+<span class="id" title="keyword">Structure</span> <a name="FinRing.UnitRing.type"><span class="id" title="record">type</span></a> := <a name="FinRing.UnitRing.Pack"><span class="id" title="constructor">Pack</span></a> {<a name="FinRing.UnitRing.sort"><span class="id" title="projection">sort</span></a>; <span class="id" title="var">_</span> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.class_of"><span class="id" title="record">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#sort"><span class="id" title="method">sort</span></a>; <span class="id" title="var">_</span> : <span class="id" title="keyword">Type</span>}.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.UnitRing.pack"><span class="id" title="definition">pack</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.gen_pack"><span class="id" title="definition">gen_pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.Pack"><span class="id" title="constructor">Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.Class"><span class="id" title="constructor">Class</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.UnitRing.class"><span class="id" title="definition">GRing.UnitRing.class</span></a>.<br/>
+<span class="id" title="keyword">Variable</span> <a name="FinRing.UnitRing.ClassDef.cT"><span class="id" title="variable">cT</span></a> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.type"><span class="id" title="record">type</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.UnitRing.class"><span class="id" title="definition">class</span></a> := <span class="id" title="keyword">let</span>: <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.Pack"><span class="id" title="constructor">Pack</span></a> <span class="id" title="var">_</span> <span class="id" title="var">c</span> <span class="id" title="var">_</span> <span class="id" title="keyword">as</span> <span class="id" title="var">cT'</span> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.ClassDef.cT"><span class="id" title="variable">cT</span></a> <span class="id" title="keyword">return</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.class_of"><span class="id" title="record">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#cT'"><span class="id" title="variable">cT'</span></a> <span class="id" title="tactic">in</span> <span class="id" title="var">c</span>.<br/>
+<span class="id" title="keyword">Let</span> <a name="FinRing.UnitRing.ClassDef.xT"><span class="id" title="variable">xT</span></a> := <span class="id" title="keyword">let</span>: <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.Pack"><span class="id" title="constructor">Pack</span></a> <span class="id" title="var">T</span> <span class="id" title="var">_</span> <span class="id" title="var">_</span> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.ClassDef.cT"><span class="id" title="variable">cT</span></a> <span class="id" title="tactic">in</span> <span class="id" title="var">T</span>.<br/>
+<span class="id" title="keyword">Notation</span> <a name="FinRing.UnitRing.xclass"><span class="id" title="abbreviation">xclass</span></a> := (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.class"><span class="id" title="definition">class</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#4509b22bf26e3d6d771897e22bd8bc8f"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.class_of"><span class="id" title="record">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.ClassDef.xT"><span class="id" title="variable">xT</span></a>).<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.UnitRing.eqType"><span class="id" title="definition">eqType</span></a> := @<a class="idref" href="mathcomp.ssreflect.eqtype.html#Equality.Pack"><span class="id" title="constructor">Equality.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.UnitRing.choiceType"><span class="id" title="definition">choiceType</span></a> := @<a class="idref" href="mathcomp.ssreflect.choice.html#Choice.Pack"><span class="id" title="constructor">Choice.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.UnitRing.countType"><span class="id" title="definition">countType</span></a> := @<a class="idref" href="mathcomp.ssreflect.choice.html#Countable.Pack"><span class="id" title="constructor">Countable.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.ClassDef.cT"><span class="id" title="variable">cT</span></a> (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.fin_"><span class="id" title="abbreviation">fin_</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.xclass"><span class="id" title="abbreviation">xclass</span></a>) <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.UnitRing.finType"><span class="id" title="definition">finType</span></a> := @<a class="idref" href="mathcomp.ssreflect.fintype.html#Finite.Pack"><span class="id" title="constructor">Finite.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.ClassDef.cT"><span class="id" title="variable">cT</span></a> (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.fin_"><span class="id" title="abbreviation">fin_</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.xclass"><span class="id" title="abbreviation">xclass</span></a>) <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.UnitRing.zmodType"><span class="id" title="definition">zmodType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Zmodule.Pack"><span class="id" title="constructor">GRing.Zmodule.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.UnitRing.finZmodType"><span class="id" title="definition">finZmodType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.Pack"><span class="id" title="constructor">Zmodule.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.UnitRing.ringType"><span class="id" title="definition">ringType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Ring.Pack"><span class="id" title="constructor">GRing.Ring.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.UnitRing.finRingType"><span class="id" title="definition">finRingType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.Pack"><span class="id" title="constructor">Ring.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.UnitRing.unitRingType"><span class="id" title="definition">unitRingType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.UnitRing.Pack"><span class="id" title="constructor">GRing.UnitRing.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.UnitRing.join_finType"><span class="id" title="definition">join_finType</span></a> := @<a class="idref" href="mathcomp.ssreflect.fintype.html#Finite.Pack"><span class="id" title="constructor">Finite.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.unitRingType"><span class="id" title="definition">unitRingType</span></a> (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.fin_"><span class="id" title="abbreviation">fin_</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.xclass"><span class="id" title="abbreviation">xclass</span></a>) <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.UnitRing.join_finZmodType"><span class="id" title="definition">join_finZmodType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.Pack"><span class="id" title="constructor">Zmodule.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.unitRingType"><span class="id" title="definition">unitRingType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.UnitRing.join_finRingType"><span class="id" title="definition">join_finRingType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.Pack"><span class="id" title="constructor">Ring.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.unitRingType"><span class="id" title="definition">unitRingType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.UnitRing.baseFinGroupType"><span class="id" title="definition">baseFinGroupType</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.base_group"><span class="id" title="abbreviation">base_group</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.zmodType"><span class="id" title="definition">zmodType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.finType"><span class="id" title="definition">finType</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.UnitRing.finGroupType"><span class="id" title="definition">finGroupType</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.fin_group"><span class="id" title="abbreviation">fin_group</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.baseFinGroupType"><span class="id" title="definition">baseFinGroupType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.zmodType"><span class="id" title="definition">zmodType</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.UnitRing.join_baseFinGroupType"><span class="id" title="definition">join_baseFinGroupType</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.base_group"><span class="id" title="abbreviation">base_group</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.unitRingType"><span class="id" title="definition">unitRingType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.zmodType"><span class="id" title="definition">zmodType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.finType"><span class="id" title="definition">finType</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.UnitRing.join_finGroupType"><span class="id" title="definition">join_finGroupType</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.fin_group"><span class="id" title="abbreviation">fin_group</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.join_baseFinGroupType"><span class="id" title="definition">join_baseFinGroupType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.zmodType"><span class="id" title="definition">zmodType</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.ClassDef"><span class="id" title="section">ClassDef</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Module</span> <a name="FinRing.UnitRing.Exports"><span class="id" title="module">Exports</span></a>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.base"><span class="id" title="projection">base</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.base"><span class="id" title="projection">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.base"><span class="id" title="projection">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.base"><span class="id" title="projection">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.base"><span class="id" title="projection">GRing.UnitRing.class_of</span></a>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.base2"><span class="id" title="definition">base2</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.base2"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.base2"><span class="id" title="definition">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.base2"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.base2"><span class="id" title="definition">Ring.class_of</span></a>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.sort"><span class="id" title="projection">sort</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.sort"><span class="id" title="projection">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.sort"><span class="id" title="projection">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.sort"><span class="id" title="projection">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.sort"><span class="id" title="projection">Sortclass</span></a>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.eqType"><span class="id" title="definition">eqType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.eqType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.eqType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.eqType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.eqType"><span class="id" title="definition">Equality.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">eqType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.choiceType"><span class="id" title="definition">choiceType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.choiceType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.choiceType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.choiceType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.choiceType"><span class="id" title="definition">Choice.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">choiceType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.countType"><span class="id" title="definition">countType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.countType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.countType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.countType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.countType"><span class="id" title="definition">Countable.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">countType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.finType"><span class="id" title="definition">finType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.finType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.finType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.finType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.finType"><span class="id" title="definition">Finite.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">finType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.zmodType"><span class="id" title="definition">zmodType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.zmodType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.zmodType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.zmodType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.zmodType"><span class="id" title="definition">GRing.Zmodule.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">zmodType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.finZmodType"><span class="id" title="definition">finZmodType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.finZmodType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.finZmodType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.finZmodType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.finZmodType"><span class="id" title="definition">Zmodule.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">finZmodType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.ringType"><span class="id" title="definition">ringType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.ringType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.ringType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.ringType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.ringType"><span class="id" title="definition">GRing.Ring.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">ringType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.finRingType"><span class="id" title="definition">finRingType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.finRingType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.finRingType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.finRingType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.finRingType"><span class="id" title="definition">Ring.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">finRingType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.unitRingType"><span class="id" title="definition">unitRingType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.unitRingType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.unitRingType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.unitRingType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.unitRingType"><span class="id" title="definition">GRing.UnitRing.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">unitRingType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_finType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_finZmodType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_finRingType</span>.<br/>
+<span class="id" title="keyword">Notation</span> <a name="FinRing.UnitRing.Exports.finUnitRingType"><span class="id" title="abbreviation">finUnitRingType</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.type"><span class="id" title="record">FinRing.UnitRing.type</span></a>.<br/>
+<span class="id" title="keyword">Notation</span> <a name="7f21453830587186138043335ab91dd1"><span class="id" title="notation">&quot;</span></a>[ 'finUnitRingType' 'of' T ]" := (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.do_pack"><span class="id" title="abbreviation">do_pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.pack"><span class="id" title="definition">pack</span></a> <span class="id" title="var">T</span>)<br/>
+&nbsp;&nbsp;(<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 0, <span class="id" title="var">format</span> "[ 'finUnitRingType' 'of' T ]") : <span class="id" title="var">form_scope</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">baseFinGroupType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">finGroupType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_baseFinGroupType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_finGroupType</span>.<br/>
+<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.Exports"><span class="id" title="module">Exports</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing"><span class="id" title="module">UnitRing</span></a>.<br/>
+<span class="id" title="keyword">Import</span> <span class="id" title="var">UnitRing.Exports</span>.<br/>
+
+<br/>
+<span class="id" title="keyword">Section</span> <a name="FinRing.UnitsGroup"><span class="id" title="section">UnitsGroup</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Variable</span> <a name="FinRing.UnitsGroup.R"><span class="id" title="variable">R</span></a> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.finUnitRingType"><span class="id" title="abbreviation">finUnitRingType</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Inductive</span> <a name="FinRing.unit_of"><span class="id" title="inductive">unit_of</span></a> (<span class="id" title="var">phR</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#phant"><span class="id" title="inductive">phant</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitsGroup.R"><span class="id" title="variable">R</span></a>) := <a name="FinRing.Unit"><span class="id" title="constructor">Unit</span></a> (<span class="id" title="var">x</span> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitsGroup.R"><span class="id" title="variable">R</span></a>) <span class="id" title="keyword">of</span> <a class="idref" href="mathcomp.algebra.finalg.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">is</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.unit"><span class="id" title="definition">GRing.unit</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Let</span> <a name="FinRing.UnitsGroup.phR"><span class="id" title="variable">phR</span></a> := <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#Phant"><span class="id" title="constructor">Phant</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitsGroup.R"><span class="id" title="variable">R</span></a>.<br/>
+<span class="id" title="keyword">Implicit</span> <span class="id" title="keyword">Types</span> <span class="id" title="var">u</span> <span class="id" title="var">v</span> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.uT"><span class="id" title="abbreviation">uT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.uval"><span class="id" title="definition">uval</span></a> <span class="id" title="var">u</span> := <span class="id" title="keyword">let</span>: <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Unit"><span class="id" title="constructor">Unit</span></a> <span class="id" title="var">x</span> <span class="id" title="var">_</span> := <a class="idref" href="mathcomp.algebra.finalg.html#u"><span class="id" title="variable">u</span></a> <span class="id" title="tactic">in</span> <span class="id" title="var">x</span>.<br/>
+
+<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">unit_subType</span> := <a class="idref" href="mathcomp.ssreflect.eqtype.html#341c160c3e7b20d967b85d1852a7f89f"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.eqtype.html#341c160c3e7b20d967b85d1852a7f89f"><span class="id" title="notation">subType</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#341c160c3e7b20d967b85d1852a7f89f"><span class="id" title="notation">for</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.uval"><span class="id" title="definition">uval</span></a><a class="idref" href="mathcomp.ssreflect.eqtype.html#341c160c3e7b20d967b85d1852a7f89f"><span class="id" title="notation">]</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.unit_eqMixin"><span class="id" title="definition">unit_eqMixin</span></a> := <span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.ssreflect.eqtype.html#4bc2d2dce12edef0fb9c71d4a902ae5d"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.eqtype.html#4bc2d2dce12edef0fb9c71d4a902ae5d"><span class="id" title="notation">eqMixin</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#4bc2d2dce12edef0fb9c71d4a902ae5d"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.uT"><span class="id" title="abbreviation">uT</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#4bc2d2dce12edef0fb9c71d4a902ae5d"><span class="id" title="notation">by</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#4bc2d2dce12edef0fb9c71d4a902ae5d"><span class="id" title="notation">&lt;:]</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">unit_eqType</span> := <span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.ssreflect.eqtype.html#Equality.Exports.EqType"><span class="id" title="abbreviation">EqType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.uT"><span class="id" title="abbreviation">uT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.unit_eqMixin"><span class="id" title="definition">unit_eqMixin</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.unit_choiceMixin"><span class="id" title="definition">unit_choiceMixin</span></a> := <a class="idref" href="mathcomp.ssreflect.choice.html#6c8b2d90ff1fbb8e9926bbf12495cb70"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.choice.html#6c8b2d90ff1fbb8e9926bbf12495cb70"><span class="id" title="notation">choiceMixin</span></a> <a class="idref" href="mathcomp.ssreflect.choice.html#6c8b2d90ff1fbb8e9926bbf12495cb70"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.uT"><span class="id" title="abbreviation">uT</span></a> <a class="idref" href="mathcomp.ssreflect.choice.html#6c8b2d90ff1fbb8e9926bbf12495cb70"><span class="id" title="notation">by</span></a> <a class="idref" href="mathcomp.ssreflect.choice.html#6c8b2d90ff1fbb8e9926bbf12495cb70"><span class="id" title="notation">&lt;:]</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">unit_choiceType</span> := <span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.ssreflect.choice.html#Choice.Exports.ChoiceType"><span class="id" title="abbreviation">ChoiceType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.uT"><span class="id" title="abbreviation">uT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.unit_choiceMixin"><span class="id" title="definition">unit_choiceMixin</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.unit_countMixin"><span class="id" title="definition">unit_countMixin</span></a> := <a class="idref" href="mathcomp.ssreflect.choice.html#99c739c8f4212f142296b27d3077c65e"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.choice.html#99c739c8f4212f142296b27d3077c65e"><span class="id" title="notation">countMixin</span></a> <a class="idref" href="mathcomp.ssreflect.choice.html#99c739c8f4212f142296b27d3077c65e"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.uT"><span class="id" title="abbreviation">uT</span></a> <a class="idref" href="mathcomp.ssreflect.choice.html#99c739c8f4212f142296b27d3077c65e"><span class="id" title="notation">by</span></a> <a class="idref" href="mathcomp.ssreflect.choice.html#99c739c8f4212f142296b27d3077c65e"><span class="id" title="notation">&lt;:]</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">unit_countType</span> := <span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.ssreflect.choice.html#Countable.Exports.CountType"><span class="id" title="abbreviation">CountType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.uT"><span class="id" title="abbreviation">uT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.unit_countMixin"><span class="id" title="definition">unit_countMixin</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">unit_subCountType</span> := <span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.ssreflect.choice.html#8a7192fa64a42310658fd5be07ae4fcc"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.choice.html#8a7192fa64a42310658fd5be07ae4fcc"><span class="id" title="notation">subCountType</span></a> <a class="idref" href="mathcomp.ssreflect.choice.html#8a7192fa64a42310658fd5be07ae4fcc"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.uT"><span class="id" title="abbreviation">uT</span></a><a class="idref" href="mathcomp.ssreflect.choice.html#8a7192fa64a42310658fd5be07ae4fcc"><span class="id" title="notation">]</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.unit_finMixin"><span class="id" title="definition">unit_finMixin</span></a> := <a class="idref" href="mathcomp.ssreflect.fintype.html#8c180561768185dd10396a5d3615104a"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#8c180561768185dd10396a5d3615104a"><span class="id" title="notation">finMixin</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#8c180561768185dd10396a5d3615104a"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.uT"><span class="id" title="abbreviation">uT</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#8c180561768185dd10396a5d3615104a"><span class="id" title="notation">by</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#8c180561768185dd10396a5d3615104a"><span class="id" title="notation">&lt;:]</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">unit_finType</span> := <span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.ssreflect.fintype.html#Finite.Exports.FinType"><span class="id" title="abbreviation">FinType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.uT"><span class="id" title="abbreviation">uT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.unit_finMixin"><span class="id" title="definition">unit_finMixin</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">unit_subFinType</span> := <span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.ssreflect.fintype.html#a701c7b60b4a16f07950761d8bf90924"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#a701c7b60b4a16f07950761d8bf90924"><span class="id" title="notation">subFinType</span></a> <a class="idref" href="mathcomp.ssreflect.fintype.html#a701c7b60b4a16f07950761d8bf90924"><span class="id" title="notation">of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.uT"><span class="id" title="abbreviation">uT</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#a701c7b60b4a16f07950761d8bf90924"><span class="id" title="notation">]</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.unit1"><span class="id" title="definition">unit1</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Unit"><span class="id" title="constructor">Unit</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitsGroup.phR"><span class="id" title="variable">phR</span></a> (@<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.unitr1"><span class="id" title="lemma">GRing.unitr1</span></a> <span class="id" title="var">_</span>).<br/>
+<span class="id" title="keyword">Lemma</span> <a name="FinRing.unit_inv_proof"><span class="id" title="lemma">unit_inv_proof</span></a> <span class="id" title="var">u</span> : <a class="idref" href="mathcomp.algebra.ssralg.html#f3016d4e55aa553d3e912592ec65e342"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.ssreflect.eqtype.html#val"><span class="id" title="projection">val</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#u"><span class="id" title="variable">u</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#f3016d4e55aa553d3e912592ec65e342"><span class="id" title="notation">)^-1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">is</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.unit"><span class="id" title="definition">GRing.unit</span></a>.<br/>
+ <span class="id" title="keyword">Definition</span> <a name="FinRing.unit_inv"><span class="id" title="definition">unit_inv</span></a> <span class="id" title="var">u</span> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Unit"><span class="id" title="constructor">Unit</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitsGroup.phR"><span class="id" title="variable">phR</span></a> (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.unit_inv_proof"><span class="id" title="lemma">unit_inv_proof</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#u"><span class="id" title="variable">u</span></a>).<br/>
+<span class="id" title="keyword">Lemma</span> <a name="FinRing.unit_mul_proof"><span class="id" title="lemma">unit_mul_proof</span></a> <span class="id" title="var">u</span> <span class="id" title="var">v</span> : <a class="idref" href="mathcomp.ssreflect.eqtype.html#val"><span class="id" title="projection">val</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#val"><span class="id" title="projection">val</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#v"><span class="id" title="variable">v</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">is</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.unit"><span class="id" title="definition">GRing.unit</span></a>.<br/>
+ <span class="id" title="keyword">Definition</span> <a name="FinRing.unit_mul"><span class="id" title="definition">unit_mul</span></a> <span class="id" title="var">u</span> <span class="id" title="var">v</span> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Unit"><span class="id" title="constructor">Unit</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitsGroup.phR"><span class="id" title="variable">phR</span></a> (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.unit_mul_proof"><span class="id" title="lemma">unit_mul_proof</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#v"><span class="id" title="variable">v</span></a>).<br/>
+<span class="id" title="keyword">Lemma</span> <a name="FinRing.unit_muluA"><span class="id" title="lemma">unit_muluA</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#associative"><span class="id" title="definition">associative</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.unit_mul"><span class="id" title="definition">unit_mul</span></a>.<br/>
+ <span class="id" title="keyword">Lemma</span> <a name="FinRing.unit_mul1u"><span class="id" title="lemma">unit_mul1u</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#left_id"><span class="id" title="definition">left_id</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.unit1"><span class="id" title="definition">unit1</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.unit_mul"><span class="id" title="definition">unit_mul</span></a>.<br/>
+ <span class="id" title="keyword">Lemma</span> <a name="FinRing.unit_mulVu"><span class="id" title="lemma">unit_mulVu</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrfun.html#left_inverse"><span class="id" title="definition">left_inverse</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.unit1"><span class="id" title="definition">unit1</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.unit_inv"><span class="id" title="definition">unit_inv</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.unit_mul"><span class="id" title="definition">unit_mul</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.unit_GroupMixin"><span class="id" title="definition">unit_GroupMixin</span></a> := <a class="idref" href="mathcomp.fingroup.fingroup.html#FinGroup.Mixin"><span class="id" title="definition">FinGroup.Mixin</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.unit_muluA"><span class="id" title="lemma">unit_muluA</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.unit_mul1u"><span class="id" title="lemma">unit_mul1u</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.unit_mulVu"><span class="id" title="lemma">unit_mulVu</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">unit_baseFinGroupType</span> :=<br/>
+&nbsp;&nbsp;<span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.fingroup.fingroup.html#FinGroup.Exports.BaseFinGroupType"><span class="id" title="abbreviation">BaseFinGroupType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.uT"><span class="id" title="abbreviation">uT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.unit_GroupMixin"><span class="id" title="definition">unit_GroupMixin</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">unit_finGroupType</span> := <span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.fingroup.fingroup.html#FinGroup.Exports.FinGroupType"><span class="id" title="abbreviation">FinGroupType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.unit_mulVu"><span class="id" title="lemma">unit_mulVu</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="FinRing.val_unit1"><span class="id" title="lemma">val_unit1</span></a> : <a class="idref" href="mathcomp.ssreflect.eqtype.html#val"><span class="id" title="projection">val</span></a> (1%<span class="id" title="var">g</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#4509b22bf26e3d6d771897e22bd8bc8f"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.uT"><span class="id" title="abbreviation">uT</span></a>) <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> 1. <br/>
+<span class="id" title="keyword">Lemma</span> <a name="FinRing.val_unitM"><span class="id" title="lemma">val_unitM</span></a> <span class="id" title="var">x</span> <span class="id" title="var">y</span> : <a class="idref" href="mathcomp.ssreflect.eqtype.html#val"><span class="id" title="projection">val</span></a> (<a class="idref" href="mathcomp.algebra.finalg.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#169fb610eeaa28cebf8ec36928167473"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#y"><span class="id" title="variable">y</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#4509b22bf26e3d6d771897e22bd8bc8f"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.uT"><span class="id" title="abbreviation">uT</span></a>)%<span class="id" title="var">g</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#val"><span class="id" title="projection">val</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#val"><span class="id" title="projection">val</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#y"><span class="id" title="variable">y</span></a>. <br/>
+<span class="id" title="keyword">Lemma</span> <a name="FinRing.val_unitV"><span class="id" title="lemma">val_unitV</span></a> <span class="id" title="var">x</span> : <a class="idref" href="mathcomp.ssreflect.eqtype.html#val"><span class="id" title="projection">val</span></a> (<a class="idref" href="mathcomp.algebra.finalg.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.fingroup.fingroup.html#a605acbeae7597f74f5a9b816ed8a717"><span class="id" title="notation">^-1</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#4509b22bf26e3d6d771897e22bd8bc8f"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.uT"><span class="id" title="abbreviation">uT</span></a>)%<span class="id" title="var">g</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#f3016d4e55aa553d3e912592ec65e342"><span class="id" title="notation">(</span></a><a class="idref" href="mathcomp.ssreflect.eqtype.html#val"><span class="id" title="projection">val</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#x"><span class="id" title="variable">x</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#f3016d4e55aa553d3e912592ec65e342"><span class="id" title="notation">)^-1</span></a>. <br/>
+<span class="id" title="keyword">Lemma</span> <a name="FinRing.val_unitX"><span class="id" title="lemma">val_unitX</span></a> <span class="id" title="var">n</span> <span class="id" title="var">x</span> : <a class="idref" href="mathcomp.ssreflect.eqtype.html#val"><span class="id" title="projection">val</span></a> (<a class="idref" href="mathcomp.algebra.finalg.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.fingroup.fingroup.html#86a04fb564fb97d388cad84a3a204260"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#n"><span class="id" title="variable">n</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#4509b22bf26e3d6d771897e22bd8bc8f"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.uT"><span class="id" title="abbreviation">uT</span></a>)%<span class="id" title="var">g</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#val"><span class="id" title="projection">val</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fb22424322c3d7eb9b837dfca65ce21e"><span class="id" title="notation">^+</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#n"><span class="id" title="variable">n</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.unit_act"><span class="id" title="definition">unit_act</span></a> <span class="id" title="var">x</span> <span class="id" title="var">u</span> := <a class="idref" href="mathcomp.algebra.finalg.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#val"><span class="id" title="projection">val</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#u"><span class="id" title="variable">u</span></a>.<br/>
+<span class="id" title="keyword">Lemma</span> <a name="FinRing.unit_actE"><span class="id" title="lemma">unit_actE</span></a> <span class="id" title="var">x</span> <span class="id" title="var">u</span> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.unit_act"><span class="id" title="definition">unit_act</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#u"><span class="id" title="variable">u</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Logic.html#1c39bf18749e5cc609e83c0a0ba5a372"><span class="id" title="notation">=</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#x"><span class="id" title="variable">x</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#22058a36a53dac65c94ca403bc62650a"><span class="id" title="notation">×</span></a> <a class="idref" href="mathcomp.ssreflect.eqtype.html#val"><span class="id" title="projection">val</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#u"><span class="id" title="variable">u</span></a>. <br/>
+
+<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">unit_action</span> :=<br/>
+&nbsp;&nbsp;@<a class="idref" href="mathcomp.fingroup.action.html#TotalAction"><span class="id" title="definition">TotalAction</span></a> <span class="id" title="var">_</span> <span class="id" title="var">_</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.unit_act"><span class="id" title="definition">unit_act</span></a> (@<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.mulr1"><span class="id" title="lemma">GRing.mulr1</span></a> <span class="id" title="var">_</span>) (<span class="id" title="keyword">fun</span> <span class="id" title="var">_</span> <span class="id" title="var">_</span> <span class="id" title="var">_</span> ⇒ <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.mulrA"><span class="id" title="lemma">GRing.mulrA</span></a> <span class="id" title="var">_</span> <span class="id" title="var">_</span> <span class="id" title="var">_</span>).<br/>
+<span class="id" title="keyword">Lemma</span> <a name="FinRing.unit_is_groupAction"><span class="id" title="lemma">unit_is_groupAction</span></a> : @<a class="idref" href="mathcomp.fingroup.action.html#is_groupAction"><span class="id" title="definition">is_groupAction</span></a> <span class="id" title="var">_</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitsGroup.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.ssreflect.finset.html#setT"><span class="id" title="abbreviation">setT</span></a> <a class="idref" href="mathcomp.ssreflect.finset.html#setT"><span class="id" title="abbreviation">setT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.unit_action"><span class="id" title="definition">unit_action</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">unit_groupAction</span> := <a class="idref" href="mathcomp.fingroup.action.html#GroupAction"><span class="id" title="constructor">GroupAction</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.unit_is_groupAction"><span class="id" title="lemma">unit_is_groupAction</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitsGroup"><span class="id" title="section">UnitsGroup</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Module</span> <span class="id" title="keyword">Import</span> <a name="FinRing.UnitsGroupExports"><span class="id" title="module">UnitsGroupExports</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">unit_subType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">unit_eqType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">unit_choiceType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">unit_countType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">unit_subCountType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">unit_finType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">unit_subFinType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">unit_baseFinGroupType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">unit_finGroupType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">unit_action</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">unit_groupAction</span>.<br/>
+<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitsGroupExports"><span class="id" title="module">UnitsGroupExports</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Notation</span> <a name="FinRing.unit"><span class="id" title="abbreviation">unit</span></a> <span class="id" title="var">R</span> <span class="id" title="var">Ux</span> := (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Unit"><span class="id" title="constructor">Unit</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#Phant"><span class="id" title="constructor">Phant</span></a> <span class="id" title="var">R</span>) <span class="id" title="var">Ux</span>).<br/>
+
+<br/>
+<span class="id" title="keyword">Module</span> <a name="FinRing.ComUnitRing"><span class="id" title="module">ComUnitRing</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Section</span> <a name="FinRing.ComUnitRing.ClassDef"><span class="id" title="section">ClassDef</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Record</span> <a name="FinRing.ComUnitRing.class_of"><span class="id" title="record">class_of</span></a> <span class="id" title="var">R</span> :=<br/>
+&nbsp;&nbsp;<a name="FinRing.ComUnitRing.Class"><span class="id" title="constructor">Class</span></a> { <a name="FinRing.ComUnitRing.base"><span class="id" title="projection">base</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.ComUnitRing.class_of"><span class="id" title="record">GRing.ComUnitRing.class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#R"><span class="id" title="variable">R</span></a>; <a name="FinRing.ComUnitRing.mixin"><span class="id" title="projection">mixin</span></a> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.mixin_of"><span class="id" title="abbreviation">mixin_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#base"><span class="id" title="method">base</span></a> }.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.ComUnitRing.base2"><span class="id" title="definition">base2</span></a> <span class="id" title="var">R</span> (<span class="id" title="var">c</span> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.class_of"><span class="id" title="record">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#R"><span class="id" title="variable">R</span></a>) := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.Class"><span class="id" title="constructor">ComRing.Class</span></a> (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.mixin"><span class="id" title="projection">mixin</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#c"><span class="id" title="variable">c</span></a>).<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.ComUnitRing.base3"><span class="id" title="definition">base3</span></a> <span class="id" title="var">R</span> (<span class="id" title="var">c</span> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.class_of"><span class="id" title="record">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#R"><span class="id" title="variable">R</span></a>) := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.Class"><span class="id" title="constructor">UnitRing.Class</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#R"><span class="id" title="variable">R</span></a> (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.base"><span class="id" title="projection">base</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#c"><span class="id" title="variable">c</span></a>) (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.mixin"><span class="id" title="projection">mixin</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#c"><span class="id" title="variable">c</span></a>).<br/>
+
+<br/>
+<span class="id" title="keyword">Structure</span> <a name="FinRing.ComUnitRing.type"><span class="id" title="record">type</span></a> := <a name="FinRing.ComUnitRing.Pack"><span class="id" title="constructor">Pack</span></a> {<a name="FinRing.ComUnitRing.sort"><span class="id" title="projection">sort</span></a>; <span class="id" title="var">_</span> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.class_of"><span class="id" title="record">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#sort"><span class="id" title="method">sort</span></a>; <span class="id" title="var">_</span> : <span class="id" title="keyword">Type</span>}.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.ComUnitRing.pack"><span class="id" title="definition">pack</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.gen_pack"><span class="id" title="definition">gen_pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.Pack"><span class="id" title="constructor">Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.Class"><span class="id" title="constructor">Class</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.ComUnitRing.class"><span class="id" title="definition">GRing.ComUnitRing.class</span></a>.<br/>
+<span class="id" title="keyword">Variable</span> <a name="FinRing.ComUnitRing.ClassDef.cT"><span class="id" title="variable">cT</span></a> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.type"><span class="id" title="record">type</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.ComUnitRing.class"><span class="id" title="definition">class</span></a> := <span class="id" title="keyword">let</span>: <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.Pack"><span class="id" title="constructor">Pack</span></a> <span class="id" title="var">_</span> <span class="id" title="var">c</span> <span class="id" title="var">_</span> <span class="id" title="keyword">as</span> <span class="id" title="var">cT'</span> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.ClassDef.cT"><span class="id" title="variable">cT</span></a> <span class="id" title="keyword">return</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.class_of"><span class="id" title="record">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#cT'"><span class="id" title="variable">cT'</span></a> <span class="id" title="tactic">in</span> <span class="id" title="var">c</span>.<br/>
+<span class="id" title="keyword">Let</span> <a name="FinRing.ComUnitRing.ClassDef.xT"><span class="id" title="variable">xT</span></a> := <span class="id" title="keyword">let</span>: <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.Pack"><span class="id" title="constructor">Pack</span></a> <span class="id" title="var">T</span> <span class="id" title="var">_</span> <span class="id" title="var">_</span> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.ClassDef.cT"><span class="id" title="variable">cT</span></a> <span class="id" title="tactic">in</span> <span class="id" title="var">T</span>.<br/>
+<span class="id" title="keyword">Notation</span> <a name="FinRing.ComUnitRing.xclass"><span class="id" title="abbreviation">xclass</span></a> := (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.class"><span class="id" title="definition">class</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#4509b22bf26e3d6d771897e22bd8bc8f"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.class_of"><span class="id" title="record">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.ClassDef.xT"><span class="id" title="variable">xT</span></a>).<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.ComUnitRing.eqType"><span class="id" title="definition">eqType</span></a> := @<a class="idref" href="mathcomp.ssreflect.eqtype.html#Equality.Pack"><span class="id" title="constructor">Equality.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.ComUnitRing.choiceType"><span class="id" title="definition">choiceType</span></a> := @<a class="idref" href="mathcomp.ssreflect.choice.html#Choice.Pack"><span class="id" title="constructor">Choice.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.ComUnitRing.countType"><span class="id" title="definition">countType</span></a> := @<a class="idref" href="mathcomp.ssreflect.choice.html#Countable.Pack"><span class="id" title="constructor">Countable.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.ClassDef.cT"><span class="id" title="variable">cT</span></a> (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.fin_"><span class="id" title="abbreviation">fin_</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.xclass"><span class="id" title="abbreviation">xclass</span></a>) <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.ComUnitRing.finType"><span class="id" title="definition">finType</span></a> := @<a class="idref" href="mathcomp.ssreflect.fintype.html#Finite.Pack"><span class="id" title="constructor">Finite.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.ClassDef.cT"><span class="id" title="variable">cT</span></a> (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.fin_"><span class="id" title="abbreviation">fin_</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.xclass"><span class="id" title="abbreviation">xclass</span></a>) <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.ComUnitRing.zmodType"><span class="id" title="definition">zmodType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Zmodule.Pack"><span class="id" title="constructor">GRing.Zmodule.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.ComUnitRing.finZmodType"><span class="id" title="definition">finZmodType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.Pack"><span class="id" title="constructor">Zmodule.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.ComUnitRing.ringType"><span class="id" title="definition">ringType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Ring.Pack"><span class="id" title="constructor">GRing.Ring.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.ComUnitRing.finRingType"><span class="id" title="definition">finRingType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.Pack"><span class="id" title="constructor">Ring.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.ComUnitRing.comRingType"><span class="id" title="definition">comRingType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.ComRing.Pack"><span class="id" title="constructor">GRing.ComRing.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.ComUnitRing.finComRingType"><span class="id" title="definition">finComRingType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.Pack"><span class="id" title="constructor">ComRing.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.ComUnitRing.unitRingType"><span class="id" title="definition">unitRingType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.UnitRing.Pack"><span class="id" title="constructor">GRing.UnitRing.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.ComUnitRing.finUnitRingType"><span class="id" title="definition">finUnitRingType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.Pack"><span class="id" title="constructor">UnitRing.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.ComUnitRing.comUnitRingType"><span class="id" title="definition">comUnitRingType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.ComUnitRing.Pack"><span class="id" title="constructor">GRing.ComUnitRing.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.ComUnitRing.join_finType"><span class="id" title="definition">join_finType</span></a> := @<a class="idref" href="mathcomp.ssreflect.fintype.html#Finite.Pack"><span class="id" title="constructor">Finite.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.comUnitRingType"><span class="id" title="definition">comUnitRingType</span></a> (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.fin_"><span class="id" title="abbreviation">fin_</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.xclass"><span class="id" title="abbreviation">xclass</span></a>) <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.ComUnitRing.join_finZmodType"><span class="id" title="definition">join_finZmodType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.Pack"><span class="id" title="constructor">Zmodule.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.comUnitRingType"><span class="id" title="definition">comUnitRingType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.ComUnitRing.join_finRingType"><span class="id" title="definition">join_finRingType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.Pack"><span class="id" title="constructor">Ring.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.comUnitRingType"><span class="id" title="definition">comUnitRingType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.ComUnitRing.join_finComRingType"><span class="id" title="definition">join_finComRingType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.Pack"><span class="id" title="constructor">ComRing.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.comUnitRingType"><span class="id" title="definition">comUnitRingType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.ComUnitRing.join_finUnitRingType"><span class="id" title="definition">join_finUnitRingType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.Pack"><span class="id" title="constructor">UnitRing.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.comUnitRingType"><span class="id" title="definition">comUnitRingType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.ComUnitRing.ujoin_finComRingType"><span class="id" title="definition">ujoin_finComRingType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.Pack"><span class="id" title="constructor">ComRing.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.unitRingType"><span class="id" title="definition">unitRingType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.ComUnitRing.cjoin_finUnitRingType"><span class="id" title="definition">cjoin_finUnitRingType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.Pack"><span class="id" title="constructor">UnitRing.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.comRingType"><span class="id" title="definition">comRingType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.ComUnitRing.fcjoin_finUnitRingType"><span class="id" title="definition">fcjoin_finUnitRingType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.Pack"><span class="id" title="constructor">UnitRing.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.finComRingType"><span class="id" title="definition">finComRingType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.ComUnitRing.baseFinGroupType"><span class="id" title="definition">baseFinGroupType</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.base_group"><span class="id" title="abbreviation">base_group</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.zmodType"><span class="id" title="definition">zmodType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.finType"><span class="id" title="definition">finType</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.ComUnitRing.finGroupType"><span class="id" title="definition">finGroupType</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.fin_group"><span class="id" title="abbreviation">fin_group</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.baseFinGroupType"><span class="id" title="definition">baseFinGroupType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.zmodType"><span class="id" title="definition">zmodType</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.ComUnitRing.join_baseFinGroupType"><span class="id" title="definition">join_baseFinGroupType</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.base_group"><span class="id" title="abbreviation">base_group</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.comUnitRingType"><span class="id" title="definition">comUnitRingType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.zmodType"><span class="id" title="definition">zmodType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.finType"><span class="id" title="definition">finType</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.ComUnitRing.join_finGroupType"><span class="id" title="definition">join_finGroupType</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.fin_group"><span class="id" title="abbreviation">fin_group</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.join_baseFinGroupType"><span class="id" title="definition">join_baseFinGroupType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.zmodType"><span class="id" title="definition">zmodType</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.ClassDef"><span class="id" title="section">ClassDef</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Module</span> <a name="FinRing.ComUnitRing.Exports"><span class="id" title="module">Exports</span></a>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.base"><span class="id" title="projection">base</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.base"><span class="id" title="projection">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.base"><span class="id" title="projection">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.base"><span class="id" title="projection">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.base"><span class="id" title="projection">GRing.ComUnitRing.class_of</span></a>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.base2"><span class="id" title="definition">base2</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.base2"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.base2"><span class="id" title="definition">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.base2"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.base2"><span class="id" title="definition">ComRing.class_of</span></a>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.base3"><span class="id" title="definition">base3</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.base3"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.base3"><span class="id" title="definition">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.base3"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.base3"><span class="id" title="definition">UnitRing.class_of</span></a>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.sort"><span class="id" title="projection">sort</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.sort"><span class="id" title="projection">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.sort"><span class="id" title="projection">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.sort"><span class="id" title="projection">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.sort"><span class="id" title="projection">Sortclass</span></a>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.eqType"><span class="id" title="definition">eqType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.eqType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.eqType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.eqType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.eqType"><span class="id" title="definition">Equality.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">eqType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.choiceType"><span class="id" title="definition">choiceType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.choiceType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.choiceType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.choiceType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.choiceType"><span class="id" title="definition">Choice.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">choiceType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.countType"><span class="id" title="definition">countType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.countType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.countType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.countType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.countType"><span class="id" title="definition">Countable.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">countType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.finType"><span class="id" title="definition">finType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.finType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.finType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.finType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.finType"><span class="id" title="definition">Finite.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">finType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.zmodType"><span class="id" title="definition">zmodType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.zmodType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.zmodType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.zmodType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.zmodType"><span class="id" title="definition">GRing.Zmodule.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">zmodType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.finZmodType"><span class="id" title="definition">finZmodType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.finZmodType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.finZmodType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.finZmodType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.finZmodType"><span class="id" title="definition">Zmodule.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">finZmodType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.ringType"><span class="id" title="definition">ringType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.ringType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.ringType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.ringType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.ringType"><span class="id" title="definition">GRing.Ring.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">ringType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.finRingType"><span class="id" title="definition">finRingType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.finRingType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.finRingType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.finRingType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.finRingType"><span class="id" title="definition">Ring.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">finRingType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.comRingType"><span class="id" title="definition">comRingType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.comRingType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.comRingType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.comRingType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.comRingType"><span class="id" title="definition">GRing.ComRing.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">comRingType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.finComRingType"><span class="id" title="definition">finComRingType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.finComRingType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.finComRingType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.finComRingType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.finComRingType"><span class="id" title="definition">ComRing.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">finComRingType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.unitRingType"><span class="id" title="definition">unitRingType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.unitRingType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.unitRingType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.unitRingType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.unitRingType"><span class="id" title="definition">GRing.UnitRing.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">unitRingType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.finUnitRingType"><span class="id" title="definition">finUnitRingType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.finUnitRingType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.finUnitRingType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.finUnitRingType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.finUnitRingType"><span class="id" title="definition">UnitRing.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">finUnitRingType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.comUnitRingType"><span class="id" title="definition">comUnitRingType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.comUnitRingType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.comUnitRingType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.comUnitRingType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.comUnitRingType"><span class="id" title="definition">GRing.ComUnitRing.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">comUnitRingType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_finType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_finZmodType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_finRingType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_finComRingType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_finUnitRingType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">ujoin_finComRingType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">cjoin_finUnitRingType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">fcjoin_finUnitRingType</span>.<br/>
+<span class="id" title="keyword">Notation</span> <a name="FinRing.ComUnitRing.Exports.finComUnitRingType"><span class="id" title="abbreviation">finComUnitRingType</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.type"><span class="id" title="record">FinRing.ComUnitRing.type</span></a>.<br/>
+<span class="id" title="keyword">Notation</span> <a name="f0aa4fcf143660f4378ecfead8f3fdda"><span class="id" title="notation">&quot;</span></a>[ 'finComUnitRingType' 'of' T ]" := (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.do_pack"><span class="id" title="abbreviation">do_pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.pack"><span class="id" title="definition">pack</span></a> <span class="id" title="var">T</span>)<br/>
+&nbsp;&nbsp;(<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 0, <span class="id" title="var">format</span> "[ 'finComUnitRingType' 'of' T ]") : <span class="id" title="var">form_scope</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">baseFinGroupType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">finGroupType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_baseFinGroupType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_finGroupType</span>.<br/>
+<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.Exports"><span class="id" title="module">Exports</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing"><span class="id" title="module">ComUnitRing</span></a>.<br/>
+<span class="id" title="keyword">Import</span> <span class="id" title="var">ComUnitRing.Exports</span>.<br/>
+
+<br/>
+<span class="id" title="keyword">Module</span> <a name="FinRing.IntegralDomain"><span class="id" title="module">IntegralDomain</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Section</span> <a name="FinRing.IntegralDomain.ClassDef"><span class="id" title="section">ClassDef</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Record</span> <a name="FinRing.IntegralDomain.class_of"><span class="id" title="record">class_of</span></a> <span class="id" title="var">R</span> :=<br/>
+&nbsp;&nbsp;<a name="FinRing.IntegralDomain.Class"><span class="id" title="constructor">Class</span></a> { <a name="FinRing.IntegralDomain.base"><span class="id" title="projection">base</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.IntegralDomain.class_of"><span class="id" title="record">GRing.IntegralDomain.class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#R"><span class="id" title="variable">R</span></a>; <a name="FinRing.IntegralDomain.mixin"><span class="id" title="projection">mixin</span></a> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.mixin_of"><span class="id" title="abbreviation">mixin_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#base"><span class="id" title="method">base</span></a> }.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.IntegralDomain.base2"><span class="id" title="definition">base2</span></a> <span class="id" title="var">R</span> (<span class="id" title="var">c</span> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.class_of"><span class="id" title="record">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#R"><span class="id" title="variable">R</span></a>) := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.Class"><span class="id" title="constructor">ComUnitRing.Class</span></a> (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.mixin"><span class="id" title="projection">mixin</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#c"><span class="id" title="variable">c</span></a>).<br/>
+
+<br/>
+<span class="id" title="keyword">Structure</span> <a name="FinRing.IntegralDomain.type"><span class="id" title="record">type</span></a> := <a name="FinRing.IntegralDomain.Pack"><span class="id" title="constructor">Pack</span></a> {<a name="FinRing.IntegralDomain.sort"><span class="id" title="projection">sort</span></a>; <span class="id" title="var">_</span> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.class_of"><span class="id" title="record">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#sort"><span class="id" title="method">sort</span></a>; <span class="id" title="var">_</span> : <span class="id" title="keyword">Type</span>}.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.IntegralDomain.pack"><span class="id" title="definition">pack</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.gen_pack"><span class="id" title="definition">gen_pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.Pack"><span class="id" title="constructor">Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.Class"><span class="id" title="constructor">Class</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.IntegralDomain.class"><span class="id" title="definition">GRing.IntegralDomain.class</span></a>.<br/>
+<span class="id" title="keyword">Variable</span> <a name="FinRing.IntegralDomain.ClassDef.cT"><span class="id" title="variable">cT</span></a> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.type"><span class="id" title="record">type</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.IntegralDomain.class"><span class="id" title="definition">class</span></a> := <span class="id" title="keyword">let</span>: <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.Pack"><span class="id" title="constructor">Pack</span></a> <span class="id" title="var">_</span> <span class="id" title="var">c</span> <span class="id" title="var">_</span> <span class="id" title="keyword">as</span> <span class="id" title="var">cT'</span> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.ClassDef.cT"><span class="id" title="variable">cT</span></a> <span class="id" title="keyword">return</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.class_of"><span class="id" title="record">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#cT'"><span class="id" title="variable">cT'</span></a> <span class="id" title="tactic">in</span> <span class="id" title="var">c</span>.<br/>
+<span class="id" title="keyword">Let</span> <a name="FinRing.IntegralDomain.ClassDef.xT"><span class="id" title="variable">xT</span></a> := <span class="id" title="keyword">let</span>: <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.Pack"><span class="id" title="constructor">Pack</span></a> <span class="id" title="var">T</span> <span class="id" title="var">_</span> <span class="id" title="var">_</span> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.ClassDef.cT"><span class="id" title="variable">cT</span></a> <span class="id" title="tactic">in</span> <span class="id" title="var">T</span>.<br/>
+<span class="id" title="keyword">Notation</span> <a name="FinRing.IntegralDomain.xclass"><span class="id" title="abbreviation">xclass</span></a> := (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.class"><span class="id" title="definition">class</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#4509b22bf26e3d6d771897e22bd8bc8f"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.class_of"><span class="id" title="record">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.ClassDef.xT"><span class="id" title="variable">xT</span></a>).<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.IntegralDomain.eqType"><span class="id" title="definition">eqType</span></a> := @<a class="idref" href="mathcomp.ssreflect.eqtype.html#Equality.Pack"><span class="id" title="constructor">Equality.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.IntegralDomain.choiceType"><span class="id" title="definition">choiceType</span></a> := @<a class="idref" href="mathcomp.ssreflect.choice.html#Choice.Pack"><span class="id" title="constructor">Choice.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.IntegralDomain.countType"><span class="id" title="definition">countType</span></a> := @<a class="idref" href="mathcomp.ssreflect.choice.html#Countable.Pack"><span class="id" title="constructor">Countable.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.ClassDef.cT"><span class="id" title="variable">cT</span></a> (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.fin_"><span class="id" title="abbreviation">fin_</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.xclass"><span class="id" title="abbreviation">xclass</span></a>) <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.IntegralDomain.finType"><span class="id" title="definition">finType</span></a> := @<a class="idref" href="mathcomp.ssreflect.fintype.html#Finite.Pack"><span class="id" title="constructor">Finite.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.ClassDef.cT"><span class="id" title="variable">cT</span></a> (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.fin_"><span class="id" title="abbreviation">fin_</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.xclass"><span class="id" title="abbreviation">xclass</span></a>) <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.IntegralDomain.zmodType"><span class="id" title="definition">zmodType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Zmodule.Pack"><span class="id" title="constructor">GRing.Zmodule.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.IntegralDomain.finZmodType"><span class="id" title="definition">finZmodType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.Pack"><span class="id" title="constructor">Zmodule.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.IntegralDomain.ringType"><span class="id" title="definition">ringType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Ring.Pack"><span class="id" title="constructor">GRing.Ring.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.IntegralDomain.finRingType"><span class="id" title="definition">finRingType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.Pack"><span class="id" title="constructor">Ring.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.IntegralDomain.comRingType"><span class="id" title="definition">comRingType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.ComRing.Pack"><span class="id" title="constructor">GRing.ComRing.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.IntegralDomain.finComRingType"><span class="id" title="definition">finComRingType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.Pack"><span class="id" title="constructor">ComRing.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.IntegralDomain.unitRingType"><span class="id" title="definition">unitRingType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.UnitRing.Pack"><span class="id" title="constructor">GRing.UnitRing.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.IntegralDomain.finUnitRingType"><span class="id" title="definition">finUnitRingType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.Pack"><span class="id" title="constructor">UnitRing.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.IntegralDomain.comUnitRingType"><span class="id" title="definition">comUnitRingType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.ComUnitRing.Pack"><span class="id" title="constructor">GRing.ComUnitRing.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.IntegralDomain.finComUnitRingType"><span class="id" title="definition">finComUnitRingType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.Pack"><span class="id" title="constructor">ComUnitRing.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.IntegralDomain.idomainType"><span class="id" title="definition">idomainType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.IntegralDomain.Pack"><span class="id" title="constructor">GRing.IntegralDomain.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.IntegralDomain.join_finType"><span class="id" title="definition">join_finType</span></a> := @<a class="idref" href="mathcomp.ssreflect.fintype.html#Finite.Pack"><span class="id" title="constructor">Finite.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.idomainType"><span class="id" title="definition">idomainType</span></a> (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.fin_"><span class="id" title="abbreviation">fin_</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.xclass"><span class="id" title="abbreviation">xclass</span></a>) <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.IntegralDomain.join_finZmodType"><span class="id" title="definition">join_finZmodType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.Pack"><span class="id" title="constructor">Zmodule.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.idomainType"><span class="id" title="definition">idomainType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.IntegralDomain.join_finRingType"><span class="id" title="definition">join_finRingType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.Pack"><span class="id" title="constructor">Ring.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.idomainType"><span class="id" title="definition">idomainType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.IntegralDomain.join_finUnitRingType"><span class="id" title="definition">join_finUnitRingType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.Pack"><span class="id" title="constructor">UnitRing.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.idomainType"><span class="id" title="definition">idomainType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.IntegralDomain.join_finComRingType"><span class="id" title="definition">join_finComRingType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.Pack"><span class="id" title="constructor">ComRing.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.idomainType"><span class="id" title="definition">idomainType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.IntegralDomain.join_finComUnitRingType"><span class="id" title="definition">join_finComUnitRingType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.Pack"><span class="id" title="constructor">ComUnitRing.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.idomainType"><span class="id" title="definition">idomainType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.IntegralDomain.baseFinGroupType"><span class="id" title="definition">baseFinGroupType</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.base_group"><span class="id" title="abbreviation">base_group</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.zmodType"><span class="id" title="definition">zmodType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.finType"><span class="id" title="definition">finType</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.IntegralDomain.finGroupType"><span class="id" title="definition">finGroupType</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.fin_group"><span class="id" title="abbreviation">fin_group</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.baseFinGroupType"><span class="id" title="definition">baseFinGroupType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.zmodType"><span class="id" title="definition">zmodType</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.IntegralDomain.join_baseFinGroupType"><span class="id" title="definition">join_baseFinGroupType</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.base_group"><span class="id" title="abbreviation">base_group</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.idomainType"><span class="id" title="definition">idomainType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.zmodType"><span class="id" title="definition">zmodType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.finType"><span class="id" title="definition">finType</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.IntegralDomain.join_finGroupType"><span class="id" title="definition">join_finGroupType</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.fin_group"><span class="id" title="abbreviation">fin_group</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.join_baseFinGroupType"><span class="id" title="definition">join_baseFinGroupType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.zmodType"><span class="id" title="definition">zmodType</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.ClassDef"><span class="id" title="section">ClassDef</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Module</span> <a name="FinRing.IntegralDomain.Exports"><span class="id" title="module">Exports</span></a>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.base"><span class="id" title="projection">base</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.base"><span class="id" title="projection">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.base"><span class="id" title="projection">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.base"><span class="id" title="projection">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.base"><span class="id" title="projection">GRing.IntegralDomain.class_of</span></a>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.base2"><span class="id" title="definition">base2</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.base2"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.base2"><span class="id" title="definition">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.base2"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.base2"><span class="id" title="definition">ComUnitRing.class_of</span></a>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.sort"><span class="id" title="projection">sort</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.sort"><span class="id" title="projection">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.sort"><span class="id" title="projection">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.sort"><span class="id" title="projection">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.sort"><span class="id" title="projection">Sortclass</span></a>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.eqType"><span class="id" title="definition">eqType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.eqType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.eqType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.eqType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.eqType"><span class="id" title="definition">Equality.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">eqType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.choiceType"><span class="id" title="definition">choiceType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.choiceType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.choiceType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.choiceType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.choiceType"><span class="id" title="definition">Choice.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">choiceType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.countType"><span class="id" title="definition">countType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.countType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.countType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.countType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.countType"><span class="id" title="definition">Countable.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">countType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.finType"><span class="id" title="definition">finType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.finType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.finType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.finType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.finType"><span class="id" title="definition">Finite.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">finType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.zmodType"><span class="id" title="definition">zmodType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.zmodType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.zmodType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.zmodType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.zmodType"><span class="id" title="definition">GRing.Zmodule.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">zmodType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.finZmodType"><span class="id" title="definition">finZmodType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.finZmodType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.finZmodType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.finZmodType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.finZmodType"><span class="id" title="definition">Zmodule.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">finZmodType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.ringType"><span class="id" title="definition">ringType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.ringType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.ringType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.ringType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.ringType"><span class="id" title="definition">GRing.Ring.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">ringType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.finRingType"><span class="id" title="definition">finRingType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.finRingType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.finRingType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.finRingType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.finRingType"><span class="id" title="definition">Ring.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">finRingType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.comRingType"><span class="id" title="definition">comRingType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.comRingType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.comRingType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.comRingType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.comRingType"><span class="id" title="definition">GRing.ComRing.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">comRingType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.finComRingType"><span class="id" title="definition">finComRingType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.finComRingType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.finComRingType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.finComRingType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.finComRingType"><span class="id" title="definition">ComRing.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">finComRingType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.unitRingType"><span class="id" title="definition">unitRingType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.unitRingType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.unitRingType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.unitRingType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.unitRingType"><span class="id" title="definition">GRing.UnitRing.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">unitRingType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.finUnitRingType"><span class="id" title="definition">finUnitRingType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.finUnitRingType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.finUnitRingType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.finUnitRingType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.finUnitRingType"><span class="id" title="definition">UnitRing.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">finUnitRingType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.comUnitRingType"><span class="id" title="definition">comUnitRingType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.comUnitRingType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.comUnitRingType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.comUnitRingType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.comUnitRingType"><span class="id" title="definition">GRing.ComUnitRing.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">comUnitRingType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.finComUnitRingType"><span class="id" title="definition">finComUnitRingType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.finComUnitRingType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.finComUnitRingType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.finComUnitRingType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.finComUnitRingType"><span class="id" title="definition">ComUnitRing.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">finComUnitRingType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.idomainType"><span class="id" title="definition">idomainType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.idomainType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.idomainType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.idomainType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.idomainType"><span class="id" title="definition">GRing.IntegralDomain.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">idomainType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_finType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_finZmodType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_finRingType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_finComRingType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_finUnitRingType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_finComUnitRingType</span>.<br/>
+<span class="id" title="keyword">Notation</span> <a name="FinRing.IntegralDomain.Exports.finIdomainType"><span class="id" title="abbreviation">finIdomainType</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.type"><span class="id" title="record">FinRing.IntegralDomain.type</span></a>.<br/>
+<span class="id" title="keyword">Notation</span> <a name="6c49b73b4d6aa1a932fafe7684bba39c"><span class="id" title="notation">&quot;</span></a>[ 'finIdomainType' 'of' T ]" := (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.do_pack"><span class="id" title="abbreviation">do_pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.pack"><span class="id" title="definition">pack</span></a> <span class="id" title="var">T</span>)<br/>
+&nbsp;&nbsp;(<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 0, <span class="id" title="var">format</span> "[ 'finIdomainType' 'of' T ]") : <span class="id" title="var">form_scope</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">baseFinGroupType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">finGroupType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_baseFinGroupType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_finGroupType</span>.<br/>
+<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.Exports"><span class="id" title="module">Exports</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain"><span class="id" title="module">IntegralDomain</span></a>.<br/>
+<span class="id" title="keyword">Import</span> <span class="id" title="var">IntegralDomain.Exports</span>.<br/>
+
+<br/>
+<span class="id" title="keyword">Module</span> <a name="FinRing.Field"><span class="id" title="module">Field</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Section</span> <a name="FinRing.Field.ClassDef"><span class="id" title="section">ClassDef</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Record</span> <a name="FinRing.Field.class_of"><span class="id" title="record">class_of</span></a> <span class="id" title="var">R</span> :=<br/>
+&nbsp;&nbsp;<a name="FinRing.Field.Class"><span class="id" title="constructor">Class</span></a> { <a name="FinRing.Field.base"><span class="id" title="projection">base</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.class_of"><span class="id" title="record">GRing.Field.class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#R"><span class="id" title="variable">R</span></a>; <a name="FinRing.Field.mixin"><span class="id" title="projection">mixin</span></a> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.mixin_of"><span class="id" title="abbreviation">mixin_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#base"><span class="id" title="method">base</span></a> }.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Field.base2"><span class="id" title="definition">base2</span></a> <span class="id" title="var">R</span> (<span class="id" title="var">c</span> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.class_of"><span class="id" title="record">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#R"><span class="id" title="variable">R</span></a>) := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.Class"><span class="id" title="constructor">IntegralDomain.Class</span></a> (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.mixin"><span class="id" title="projection">mixin</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#c"><span class="id" title="variable">c</span></a>).<br/>
+
+<br/>
+<span class="id" title="keyword">Structure</span> <a name="FinRing.Field.type"><span class="id" title="record">type</span></a> := <a name="FinRing.Field.Pack"><span class="id" title="constructor">Pack</span></a> {<a name="FinRing.Field.sort"><span class="id" title="projection">sort</span></a>; <span class="id" title="var">_</span> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.class_of"><span class="id" title="record">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#sort"><span class="id" title="method">sort</span></a>; <span class="id" title="var">_</span> : <span class="id" title="keyword">Type</span>}.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Field.pack"><span class="id" title="definition">pack</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.gen_pack"><span class="id" title="definition">gen_pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.Pack"><span class="id" title="constructor">Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.Class"><span class="id" title="constructor">Class</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.class"><span class="id" title="definition">GRing.Field.class</span></a>.<br/>
+<span class="id" title="keyword">Variable</span> <a name="FinRing.Field.ClassDef.cT"><span class="id" title="variable">cT</span></a> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.type"><span class="id" title="record">type</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Field.class"><span class="id" title="definition">class</span></a> := <span class="id" title="keyword">let</span>: <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.Pack"><span class="id" title="constructor">Pack</span></a> <span class="id" title="var">_</span> <span class="id" title="var">c</span> <span class="id" title="var">_</span> <span class="id" title="keyword">as</span> <span class="id" title="var">cT'</span> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.ClassDef.cT"><span class="id" title="variable">cT</span></a> <span class="id" title="keyword">return</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.class_of"><span class="id" title="record">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#cT'"><span class="id" title="variable">cT'</span></a> <span class="id" title="tactic">in</span> <span class="id" title="var">c</span>.<br/>
+<span class="id" title="keyword">Let</span> <a name="FinRing.Field.ClassDef.xT"><span class="id" title="variable">xT</span></a> := <span class="id" title="keyword">let</span>: <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.Pack"><span class="id" title="constructor">Pack</span></a> <span class="id" title="var">T</span> <span class="id" title="var">_</span> <span class="id" title="var">_</span> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.ClassDef.cT"><span class="id" title="variable">cT</span></a> <span class="id" title="tactic">in</span> <span class="id" title="var">T</span>.<br/>
+<span class="id" title="keyword">Notation</span> <a name="FinRing.Field.xclass"><span class="id" title="abbreviation">xclass</span></a> := (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.class"><span class="id" title="definition">class</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#4509b22bf26e3d6d771897e22bd8bc8f"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.class_of"><span class="id" title="record">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.ClassDef.xT"><span class="id" title="variable">xT</span></a>).<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Field.eqType"><span class="id" title="definition">eqType</span></a> := @<a class="idref" href="mathcomp.ssreflect.eqtype.html#Equality.Pack"><span class="id" title="constructor">Equality.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Field.choiceType"><span class="id" title="definition">choiceType</span></a> := @<a class="idref" href="mathcomp.ssreflect.choice.html#Choice.Pack"><span class="id" title="constructor">Choice.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Field.countType"><span class="id" title="definition">countType</span></a> := @<a class="idref" href="mathcomp.ssreflect.choice.html#Countable.Pack"><span class="id" title="constructor">Countable.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.ClassDef.cT"><span class="id" title="variable">cT</span></a> (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.fin_"><span class="id" title="abbreviation">fin_</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.xclass"><span class="id" title="abbreviation">xclass</span></a>) <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Field.finType"><span class="id" title="definition">finType</span></a> := @<a class="idref" href="mathcomp.ssreflect.fintype.html#Finite.Pack"><span class="id" title="constructor">Finite.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.ClassDef.cT"><span class="id" title="variable">cT</span></a> (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.fin_"><span class="id" title="abbreviation">fin_</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.xclass"><span class="id" title="abbreviation">xclass</span></a>) <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Field.zmodType"><span class="id" title="definition">zmodType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Zmodule.Pack"><span class="id" title="constructor">GRing.Zmodule.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Field.finZmodType"><span class="id" title="definition">finZmodType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.Pack"><span class="id" title="constructor">Zmodule.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Field.ringType"><span class="id" title="definition">ringType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Ring.Pack"><span class="id" title="constructor">GRing.Ring.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Field.finRingType"><span class="id" title="definition">finRingType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.Pack"><span class="id" title="constructor">Ring.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Field.comRingType"><span class="id" title="definition">comRingType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.ComRing.Pack"><span class="id" title="constructor">GRing.ComRing.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Field.finComRingType"><span class="id" title="definition">finComRingType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.Pack"><span class="id" title="constructor">ComRing.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Field.unitRingType"><span class="id" title="definition">unitRingType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.UnitRing.Pack"><span class="id" title="constructor">GRing.UnitRing.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Field.finUnitRingType"><span class="id" title="definition">finUnitRingType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.Pack"><span class="id" title="constructor">UnitRing.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Field.comUnitRingType"><span class="id" title="definition">comUnitRingType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.ComUnitRing.Pack"><span class="id" title="constructor">GRing.ComUnitRing.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Field.finComUnitRingType"><span class="id" title="definition">finComUnitRingType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.Pack"><span class="id" title="constructor">ComUnitRing.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Field.idomainType"><span class="id" title="definition">idomainType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.IntegralDomain.Pack"><span class="id" title="constructor">GRing.IntegralDomain.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Field.finIdomainType"><span class="id" title="definition">finIdomainType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.Pack"><span class="id" title="constructor">IntegralDomain.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Field.fieldType"><span class="id" title="definition">fieldType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Field.Pack"><span class="id" title="constructor">GRing.Field.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Field.join_finType"><span class="id" title="definition">join_finType</span></a> := @<a class="idref" href="mathcomp.ssreflect.fintype.html#Finite.Pack"><span class="id" title="constructor">Finite.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.fieldType"><span class="id" title="definition">fieldType</span></a> (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.fin_"><span class="id" title="abbreviation">fin_</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.xclass"><span class="id" title="abbreviation">xclass</span></a>) <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Field.join_finZmodType"><span class="id" title="definition">join_finZmodType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.Pack"><span class="id" title="constructor">Zmodule.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.fieldType"><span class="id" title="definition">fieldType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Field.join_finRingType"><span class="id" title="definition">join_finRingType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.Pack"><span class="id" title="constructor">Ring.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.fieldType"><span class="id" title="definition">fieldType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Field.join_finUnitRingType"><span class="id" title="definition">join_finUnitRingType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.Pack"><span class="id" title="constructor">UnitRing.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.fieldType"><span class="id" title="definition">fieldType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Field.join_finComRingType"><span class="id" title="definition">join_finComRingType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.Pack"><span class="id" title="constructor">ComRing.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.fieldType"><span class="id" title="definition">fieldType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Field.join_finComUnitRingType"><span class="id" title="definition">join_finComUnitRingType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.Pack"><span class="id" title="constructor">ComUnitRing.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.fieldType"><span class="id" title="definition">fieldType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Field.join_finIdomainType"><span class="id" title="definition">join_finIdomainType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.Pack"><span class="id" title="constructor">IntegralDomain.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.fieldType"><span class="id" title="definition">fieldType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Field.baseFinGroupType"><span class="id" title="definition">baseFinGroupType</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.base_group"><span class="id" title="abbreviation">base_group</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.zmodType"><span class="id" title="definition">zmodType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.finType"><span class="id" title="definition">finType</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Field.finGroupType"><span class="id" title="definition">finGroupType</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.fin_group"><span class="id" title="abbreviation">fin_group</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.baseFinGroupType"><span class="id" title="definition">baseFinGroupType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.zmodType"><span class="id" title="definition">zmodType</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Field.join_baseFinGroupType"><span class="id" title="definition">join_baseFinGroupType</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.base_group"><span class="id" title="abbreviation">base_group</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.fieldType"><span class="id" title="definition">fieldType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.zmodType"><span class="id" title="definition">zmodType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.finType"><span class="id" title="definition">finType</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Field.join_finGroupType"><span class="id" title="definition">join_finGroupType</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.fin_group"><span class="id" title="abbreviation">fin_group</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.join_baseFinGroupType"><span class="id" title="definition">join_baseFinGroupType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.zmodType"><span class="id" title="definition">zmodType</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.ClassDef"><span class="id" title="section">ClassDef</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Module</span> <a name="FinRing.Field.Exports"><span class="id" title="module">Exports</span></a>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.base"><span class="id" title="projection">base</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.base"><span class="id" title="projection">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.base"><span class="id" title="projection">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.base"><span class="id" title="projection">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.base"><span class="id" title="projection">GRing.Field.class_of</span></a>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.base2"><span class="id" title="definition">base2</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.base2"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.base2"><span class="id" title="definition">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.base2"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.base2"><span class="id" title="definition">IntegralDomain.class_of</span></a>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.sort"><span class="id" title="projection">sort</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.sort"><span class="id" title="projection">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.sort"><span class="id" title="projection">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.sort"><span class="id" title="projection">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.sort"><span class="id" title="projection">Sortclass</span></a>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.eqType"><span class="id" title="definition">eqType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.eqType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.eqType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.eqType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.eqType"><span class="id" title="definition">Equality.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">eqType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.choiceType"><span class="id" title="definition">choiceType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.choiceType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.choiceType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.choiceType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.choiceType"><span class="id" title="definition">Choice.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">choiceType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.countType"><span class="id" title="definition">countType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.countType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.countType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.countType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.countType"><span class="id" title="definition">Countable.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">countType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.finType"><span class="id" title="definition">finType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.finType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.finType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.finType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.finType"><span class="id" title="definition">Finite.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">finType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.zmodType"><span class="id" title="definition">zmodType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.zmodType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.zmodType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.zmodType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.zmodType"><span class="id" title="definition">GRing.Zmodule.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">zmodType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.finZmodType"><span class="id" title="definition">finZmodType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.finZmodType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.finZmodType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.finZmodType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.finZmodType"><span class="id" title="definition">Zmodule.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">finZmodType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.ringType"><span class="id" title="definition">ringType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.ringType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.ringType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.ringType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.ringType"><span class="id" title="definition">GRing.Ring.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">ringType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.finRingType"><span class="id" title="definition">finRingType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.finRingType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.finRingType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.finRingType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.finRingType"><span class="id" title="definition">Ring.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">finRingType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.comRingType"><span class="id" title="definition">comRingType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.comRingType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.comRingType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.comRingType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.comRingType"><span class="id" title="definition">GRing.ComRing.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">comRingType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.finComRingType"><span class="id" title="definition">finComRingType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.finComRingType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.finComRingType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.finComRingType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.finComRingType"><span class="id" title="definition">ComRing.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">finComRingType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.unitRingType"><span class="id" title="definition">unitRingType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.unitRingType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.unitRingType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.unitRingType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.unitRingType"><span class="id" title="definition">GRing.UnitRing.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">unitRingType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.finUnitRingType"><span class="id" title="definition">finUnitRingType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.finUnitRingType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.finUnitRingType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.finUnitRingType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.finUnitRingType"><span class="id" title="definition">UnitRing.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">finUnitRingType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.comUnitRingType"><span class="id" title="definition">comUnitRingType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.comUnitRingType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.comUnitRingType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.comUnitRingType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.comUnitRingType"><span class="id" title="definition">GRing.ComUnitRing.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">comUnitRingType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.finComUnitRingType"><span class="id" title="definition">finComUnitRingType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.finComUnitRingType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.finComUnitRingType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.finComUnitRingType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.finComUnitRingType"><span class="id" title="definition">ComUnitRing.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">finComUnitRingType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.idomainType"><span class="id" title="definition">idomainType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.idomainType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.idomainType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.idomainType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.idomainType"><span class="id" title="definition">GRing.IntegralDomain.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">idomainType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.finIdomainType"><span class="id" title="definition">finIdomainType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.finIdomainType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.finIdomainType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.finIdomainType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.finIdomainType"><span class="id" title="definition">IntegralDomain.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">finIdomainType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.fieldType"><span class="id" title="definition">fieldType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.fieldType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.fieldType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.fieldType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.fieldType"><span class="id" title="definition">GRing.Field.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">fieldType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_finType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_finZmodType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_finRingType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_finComRingType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_finUnitRingType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_finComUnitRingType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_finIdomainType</span>.<br/>
+<span class="id" title="keyword">Notation</span> <a name="FinRing.Field.Exports.finFieldType"><span class="id" title="abbreviation">finFieldType</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.type"><span class="id" title="record">FinRing.Field.type</span></a>.<br/>
+<span class="id" title="keyword">Notation</span> <a name="07fdfbae2c02044f4dae6b5dbeb0c7c7"><span class="id" title="notation">&quot;</span></a>[ 'finFieldType' 'of' T ]" := (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.do_pack"><span class="id" title="abbreviation">do_pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.pack"><span class="id" title="definition">pack</span></a> <span class="id" title="var">T</span>)<br/>
+&nbsp;&nbsp;(<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 0, <span class="id" title="var">format</span> "[ 'finFieldType' 'of' T ]") : <span class="id" title="var">form_scope</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">baseFinGroupType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">finGroupType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_baseFinGroupType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_finGroupType</span>.<br/>
+<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.Exports"><span class="id" title="module">Exports</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field"><span class="id" title="module">Field</span></a>.<br/>
+<span class="id" title="keyword">Import</span> <span class="id" title="var">Field.Exports</span>.<br/>
+
+<br/>
+<span class="id" title="keyword">Section</span> <a name="FinRing.DecideField"><span class="id" title="section">DecideField</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Variable</span> <a name="FinRing.DecideField.F"><span class="id" title="variable">F</span></a> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.type"><span class="id" title="record">Field.type</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Fixpoint</span> <a name="FinRing.sat"><span class="id" title="definition">sat</span></a> <span class="id" title="var">e</span> <span class="id" title="var">f</span> :=<br/>
+&nbsp;&nbsp;<span class="id" title="keyword">match</span> <a class="idref" href="mathcomp.algebra.finalg.html#f"><span class="id" title="variable">f</span></a> <span class="id" title="keyword">with</span><br/>
+&nbsp;&nbsp;| <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Bool"><span class="id" title="constructor">GRing.Bool</span></a> <span class="id" title="var">b</span> ⇒ <span class="id" title="var">b</span><br/>
+&nbsp;&nbsp;| <span class="id" title="var">t1</span> <a class="idref" href="mathcomp.algebra.ssralg.html#9cd193463422c398e84dc63b7a4a91e1"><span class="id" title="notation">==</span></a> <span class="id" title="var">t2</span> ⇒ (<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.eval"><span class="id" title="definition">GRing.eval</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#e"><span class="id" title="variable">e</span></a> <span class="id" title="var">t1</span> <a class="idref" href="mathcomp.ssreflect.eqtype.html#17d28d004d0863cb022d4ce832ddaaae"><span class="id" title="notation">==</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.eval"><span class="id" title="definition">GRing.eval</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#e"><span class="id" title="variable">e</span></a> <span class="id" title="var">t2</span>)%<span class="id" title="var">bool</span><br/>
+&nbsp;&nbsp;| <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Unit"><span class="id" title="constructor">GRing.Unit</span></a> <span class="id" title="var">t</span> ⇒ <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.eval"><span class="id" title="definition">GRing.eval</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#e"><span class="id" title="variable">e</span></a> <span class="id" title="var">t</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">\</span></a><a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">is</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#1e40fee506a85b20590ef299005b003d"><span class="id" title="notation">a</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.unit"><span class="id" title="definition">GRing.unit</span></a><br/>
+&nbsp;&nbsp;| <span class="id" title="var">f1</span> <a class="idref" href="mathcomp.algebra.ssralg.html#34bfd1085795ea0dabf4707f6dcc9f24"><span class="id" title="notation">∧</span></a> <span class="id" title="var">f2</span> ⇒ <a class="idref" href="mathcomp.algebra.finalg.html#sat"><span class="id" title="definition">sat</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#e"><span class="id" title="variable">e</span></a> <span class="id" title="var">f1</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#49ac24efa716d8b0ee8943bc1d1769a9"><span class="id" title="notation">&amp;&amp;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#sat"><span class="id" title="definition">sat</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#e"><span class="id" title="variable">e</span></a> <span class="id" title="var">f2</span><br/>
+&nbsp;&nbsp;| <span class="id" title="var">f1</span> <a class="idref" href="mathcomp.algebra.ssralg.html#cedb2229ee03a356646d7d079363f569"><span class="id" title="notation">∨</span></a> <span class="id" title="var">f2</span> ⇒ <a class="idref" href="mathcomp.algebra.finalg.html#sat"><span class="id" title="definition">sat</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#e"><span class="id" title="variable">e</span></a> <span class="id" title="var">f1</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.Init.Datatypes.html#14a7a9c7dc61f86bfb664d400fabaf8a"><span class="id" title="notation">||</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#sat"><span class="id" title="definition">sat</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#e"><span class="id" title="variable">e</span></a> <span class="id" title="var">f2</span><br/>
+&nbsp;&nbsp;| <span class="id" title="var">f1</span> <a class="idref" href="mathcomp.algebra.ssralg.html#75d27ccd6bafab0712ff32ca70588f75"><span class="id" title="notation">==&gt;</span></a> <span class="id" title="var">f2</span> ⇒ (<a class="idref" href="mathcomp.algebra.finalg.html#sat"><span class="id" title="definition">sat</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#e"><span class="id" title="variable">e</span></a> <span class="id" title="var">f1</span> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#3b17cb5f3a16fa64a62421f68786f750"><span class="id" title="notation">==&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#sat"><span class="id" title="definition">sat</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#e"><span class="id" title="variable">e</span></a> <span class="id" title="var">f2</span>)%<span class="id" title="var">bool</span><br/>
+&nbsp;&nbsp;| <a class="idref" href="mathcomp.algebra.ssralg.html#4fa42a7f6c286acb6f527202ebab0b57"><span class="id" title="notation">¬</span></a> <span class="id" title="var">f1</span> ⇒ <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssrbool.html#4b80c70cdb231351c5e129ba61f7f956"><span class="id" title="notation">~~</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#sat"><span class="id" title="definition">sat</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#e"><span class="id" title="variable">e</span></a> <span class="id" title="var">f1</span><br/>
+&nbsp;&nbsp;| (<a class="idref" href="mathcomp.algebra.ssralg.html#fab74d9e9116665439f309d85c75cb19"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#fab74d9e9116665439f309d85c75cb19"><span class="id" title="notation">∃</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#fab74d9e9116665439f309d85c75cb19"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#fab74d9e9116665439f309d85c75cb19"><span class="id" title="notation">X_k</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#fab74d9e9116665439f309d85c75cb19"><span class="id" title="notation">,</span></a> <span class="id" title="var">f1</span>) ⇒ <a class="idref" href="mathcomp.ssreflect.fintype.html#a843dcbb9dc2e69b147054d3e1465e78"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#a843dcbb9dc2e69b147054d3e1465e78"><span class="id" title="notation">∃</span></a> <span class="id" title="var">x</span> <a class="idref" href="mathcomp.ssreflect.fintype.html#a843dcbb9dc2e69b147054d3e1465e78"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.DecideField.F"><span class="id" title="variable">F</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#46e5a4123d46e6b126f7788a77176785"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#sat"><span class="id" title="definition">sat</span></a> (<a class="idref" href="mathcomp.ssreflect.seq.html#set_nth"><span class="id" title="definition">set_nth</span></a> 0%<span class="id" title="var">R</span> <a class="idref" href="mathcomp.algebra.finalg.html#e"><span class="id" title="variable">e</span></a> <span class="id" title="var">k</span> <a class="idref" href="mathcomp.algebra.finalg.html#x"><span class="id" title="variable">x</span></a>) <span class="id" title="var">f1</span><a class="idref" href="mathcomp.ssreflect.fintype.html#a843dcbb9dc2e69b147054d3e1465e78"><span class="id" title="notation">]</span></a><br/>
+&nbsp;&nbsp;| (<a class="idref" href="mathcomp.algebra.ssralg.html#947870d152796aac71cef25a081c58e4"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#947870d152796aac71cef25a081c58e4"><span class="id" title="notation">∀</span></a> <a class="idref" href="mathcomp.algebra.ssralg.html#947870d152796aac71cef25a081c58e4"><span class="id" title="notation">'</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#947870d152796aac71cef25a081c58e4"><span class="id" title="notation">X_k</span></a><a class="idref" href="mathcomp.algebra.ssralg.html#947870d152796aac71cef25a081c58e4"><span class="id" title="notation">,</span></a> <span class="id" title="var">f1</span>) ⇒ <a class="idref" href="mathcomp.ssreflect.fintype.html#924e46d1120f21a5b355c376b609abe3"><span class="id" title="notation">[</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#924e46d1120f21a5b355c376b609abe3"><span class="id" title="notation">∀</span></a> <span class="id" title="var">x</span> <a class="idref" href="mathcomp.ssreflect.fintype.html#924e46d1120f21a5b355c376b609abe3"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.DecideField.F"><span class="id" title="variable">F</span></a><a class="idref" href="mathcomp.ssreflect.fintype.html#46e5a4123d46e6b126f7788a77176785"><span class="id" title="notation">,</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#sat"><span class="id" title="definition">sat</span></a> (<a class="idref" href="mathcomp.ssreflect.seq.html#set_nth"><span class="id" title="definition">set_nth</span></a> 0%<span class="id" title="var">R</span> <a class="idref" href="mathcomp.algebra.finalg.html#e"><span class="id" title="variable">e</span></a> <span class="id" title="var">k</span> <a class="idref" href="mathcomp.algebra.finalg.html#x"><span class="id" title="variable">x</span></a>) <span class="id" title="var">f1</span><a class="idref" href="mathcomp.ssreflect.fintype.html#924e46d1120f21a5b355c376b609abe3"><span class="id" title="notation">]</span></a><br/>
+&nbsp;&nbsp;<span class="id" title="keyword">end</span>%<span class="id" title="var">T</span>.<br/>
+
+<br/>
+<span class="id" title="keyword">Lemma</span> <a name="FinRing.decidable"><span class="id" title="lemma">decidable</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.DecidableField.axiom"><span class="id" title="definition">GRing.DecidableField.axiom</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.sat"><span class="id" title="definition">sat</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.DecidableFieldMixin"><span class="id" title="definition">DecidableFieldMixin</span></a> := <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.DecidableField.Exports.DecFieldMixin"><span class="id" title="abbreviation">DecFieldMixin</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.decidable"><span class="id" title="lemma">decidable</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.DecideField"><span class="id" title="section">DecideField</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Module</span> <a name="FinRing.DecField"><span class="id" title="module">DecField</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Section</span> <a name="FinRing.DecField.Joins"><span class="id" title="section">Joins</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Variable</span> <a name="FinRing.DecField.Joins.cT"><span class="id" title="variable">cT</span></a> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.type"><span class="id" title="record">Field.type</span></a>.<br/>
+<span class="id" title="keyword">Let</span> <a name="FinRing.DecField.Joins.xT"><span class="id" title="variable">xT</span></a> := <span class="id" title="keyword">let</span>: <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.Pack"><span class="id" title="constructor">Field.Pack</span></a> <span class="id" title="var">T</span> <span class="id" title="var">_</span> <span class="id" title="var">_</span> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.DecField.Joins.cT"><span class="id" title="variable">cT</span></a> <span class="id" title="tactic">in</span> <span class="id" title="var">T</span>.<br/>
+<span class="id" title="keyword">Let</span> <a name="FinRing.DecField.Joins.xclass"><span class="id" title="variable">xclass</span></a> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.class_of"><span class="id" title="record">Field.class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.DecField.Joins.xT"><span class="id" title="variable">xT</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Field.class"><span class="id" title="definition">Field.class</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.DecField.Joins.cT"><span class="id" title="variable">cT</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.DecField.type"><span class="id" title="definition">type</span></a> := <span class="id" title="keyword">Eval</span> <span class="id" title="tactic">hnf</span> <span class="id" title="tactic">in</span> <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.DecidableField.Exports.DecFieldType"><span class="id" title="abbreviation">DecFieldType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.DecField.Joins.cT"><span class="id" title="variable">cT</span></a> (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.DecidableFieldMixin"><span class="id" title="definition">DecidableFieldMixin</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.DecField.Joins.cT"><span class="id" title="variable">cT</span></a>).<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.DecField.finType"><span class="id" title="definition">finType</span></a> := @<a class="idref" href="mathcomp.ssreflect.fintype.html#Finite.Pack"><span class="id" title="constructor">Finite.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.DecField.type"><span class="id" title="definition">type</span></a> (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.fin_"><span class="id" title="abbreviation">fin_</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.DecField.Joins.xclass"><span class="id" title="variable">xclass</span></a>) <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.DecField.Joins.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.DecField.finZmodType"><span class="id" title="definition">finZmodType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.Pack"><span class="id" title="constructor">Zmodule.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.DecField.type"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.DecField.Joins.xclass"><span class="id" title="variable">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.DecField.Joins.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.DecField.finRingType"><span class="id" title="definition">finRingType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.Pack"><span class="id" title="constructor">Ring.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.DecField.type"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.DecField.Joins.xclass"><span class="id" title="variable">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.DecField.Joins.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.DecField.finUnitRingType"><span class="id" title="definition">finUnitRingType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.Pack"><span class="id" title="constructor">UnitRing.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.DecField.type"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.DecField.Joins.xclass"><span class="id" title="variable">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.DecField.Joins.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.DecField.finComRingType"><span class="id" title="definition">finComRingType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComRing.Pack"><span class="id" title="constructor">ComRing.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.DecField.type"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.DecField.Joins.xclass"><span class="id" title="variable">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.DecField.Joins.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.DecField.finComUnitRingType"><span class="id" title="definition">finComUnitRingType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.ComUnitRing.Pack"><span class="id" title="constructor">ComUnitRing.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.DecField.type"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.DecField.Joins.xclass"><span class="id" title="variable">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.DecField.Joins.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.DecField.finIdomainType"><span class="id" title="definition">finIdomainType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.IntegralDomain.Pack"><span class="id" title="constructor">IntegralDomain.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.DecField.type"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.DecField.Joins.xclass"><span class="id" title="variable">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.DecField.Joins.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.DecField.baseFinGroupType"><span class="id" title="definition">baseFinGroupType</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.base_group"><span class="id" title="abbreviation">base_group</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.DecField.type"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.DecField.finZmodType"><span class="id" title="definition">finZmodType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.DecField.finZmodType"><span class="id" title="definition">finZmodType</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.DecField.finGroupType"><span class="id" title="definition">finGroupType</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.fin_group"><span class="id" title="abbreviation">fin_group</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.DecField.baseFinGroupType"><span class="id" title="definition">baseFinGroupType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.DecField.Joins.cT"><span class="id" title="variable">cT</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.DecField.Joins"><span class="id" title="section">Joins</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Module</span> <a name="FinRing.DecField.Exports"><span class="id" title="module">Exports</span></a>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.DecField.type"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.DecField.type"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.DecField.type"><span class="id" title="definition">Field.type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.DecField.type"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.DecField.type"><span class="id" title="definition">GRing.DecidableField.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="keyword">type</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">finType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">finZmodType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">finRingType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">finUnitRingType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">finComRingType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">finComUnitRingType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">finIdomainType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">baseFinGroupType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">finGroupType</span>.<br/>
+<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.DecField.Exports"><span class="id" title="module">Exports</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.DecField"><span class="id" title="module">DecField</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Module</span> <a name="FinRing.Lmodule"><span class="id" title="module">Lmodule</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Section</span> <a name="FinRing.Lmodule.ClassDef"><span class="id" title="section">ClassDef</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Variable</span> <a name="FinRing.Lmodule.ClassDef.R"><span class="id" title="variable">R</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Ring.Exports.ringType"><span class="id" title="abbreviation">ringType</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Record</span> <a name="FinRing.Lmodule.class_of"><span class="id" title="record">class_of</span></a> <span class="id" title="var">M</span> :=<br/>
+&nbsp;&nbsp;<a name="FinRing.Lmodule.Class"><span class="id" title="constructor">Class</span></a> { <a name="FinRing.Lmodule.base"><span class="id" title="projection">base</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Lmodule.class_of"><span class="id" title="record">GRing.Lmodule.class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.ClassDef.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#M"><span class="id" title="variable">M</span></a>; <a name="FinRing.Lmodule.mixin"><span class="id" title="projection">mixin</span></a> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.mixin_of"><span class="id" title="abbreviation">mixin_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#M"><span class="id" title="variable">M</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#base"><span class="id" title="method">base</span></a> }.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Lmodule.base2"><span class="id" title="definition">base2</span></a> <span class="id" title="var">R</span> (<span class="id" title="var">c</span> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.class_of"><span class="id" title="record">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#R"><span class="id" title="variable">R</span></a>) := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.Class"><span class="id" title="constructor">Zmodule.Class</span></a> (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.mixin"><span class="id" title="projection">mixin</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#c"><span class="id" title="variable">c</span></a>).<br/>
+
+<br/>
+<span class="id" title="keyword">Structure</span> <a name="FinRing.Lmodule.type"><span class="id" title="record">type</span></a> (<span class="id" title="var">phR</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#phant"><span class="id" title="inductive">phant</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.ClassDef.R"><span class="id" title="variable">R</span></a>) := <a name="FinRing.Lmodule.Pack"><span class="id" title="constructor">Pack</span></a> {<a name="FinRing.Lmodule.sort"><span class="id" title="projection">sort</span></a>; <span class="id" title="var">_</span> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.class_of"><span class="id" title="record">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#sort"><span class="id" title="method">sort</span></a>; <span class="id" title="var">_</span> : <span class="id" title="keyword">Type</span>}.<br/>
+<span class="id" title="keyword">Variables</span> (<a name="FinRing.Lmodule.ClassDef.phR"><span class="id" title="variable">phR</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#phant"><span class="id" title="inductive">phant</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.ClassDef.R"><span class="id" title="variable">R</span></a>) (<a name="FinRing.Lmodule.ClassDef.cT"><span class="id" title="variable">cT</span></a> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.type"><span class="id" title="record">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#phR"><span class="id" title="variable">phR</span></a>).<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Lmodule.class"><span class="id" title="definition">class</span></a> := <span class="id" title="keyword">let</span>: <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.Pack"><span class="id" title="constructor">Pack</span></a> <span class="id" title="var">_</span> <span class="id" title="var">c</span> <span class="id" title="var">_</span> <span class="id" title="keyword">as</span> <span class="id" title="var">cT'</span> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.ClassDef.cT"><span class="id" title="variable">cT</span></a> <span class="id" title="keyword">return</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.class_of"><span class="id" title="record">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#cT'"><span class="id" title="variable">cT'</span></a> <span class="id" title="tactic">in</span> <span class="id" title="var">c</span>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Lmodule.pack"><span class="id" title="definition">pack</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.gen_pack"><span class="id" title="definition">gen_pack</span></a> (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.Pack"><span class="id" title="constructor">Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.ClassDef.phR"><span class="id" title="variable">phR</span></a>) <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.Class"><span class="id" title="constructor">Class</span></a> (@<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Lmodule.class"><span class="id" title="definition">GRing.Lmodule.class</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.ClassDef.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.ClassDef.phR"><span class="id" title="variable">phR</span></a>).<br/>
+<span class="id" title="keyword">Let</span> <a name="FinRing.Lmodule.ClassDef.xT"><span class="id" title="variable">xT</span></a> := <span class="id" title="keyword">let</span>: <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.Pack"><span class="id" title="constructor">Pack</span></a> <span class="id" title="var">T</span> <span class="id" title="var">_</span> <span class="id" title="var">_</span> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.ClassDef.cT"><span class="id" title="variable">cT</span></a> <span class="id" title="tactic">in</span> <span class="id" title="var">T</span>.<br/>
+<span class="id" title="keyword">Notation</span> <a name="FinRing.Lmodule.xclass"><span class="id" title="abbreviation">xclass</span></a> := (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.class"><span class="id" title="definition">class</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#4509b22bf26e3d6d771897e22bd8bc8f"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.class_of"><span class="id" title="record">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.ClassDef.xT"><span class="id" title="variable">xT</span></a>).<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Lmodule.eqType"><span class="id" title="definition">eqType</span></a> := @<a class="idref" href="mathcomp.ssreflect.eqtype.html#Equality.Pack"><span class="id" title="constructor">Equality.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Lmodule.choiceType"><span class="id" title="definition">choiceType</span></a> := @<a class="idref" href="mathcomp.ssreflect.choice.html#Choice.Pack"><span class="id" title="constructor">Choice.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Lmodule.countType"><span class="id" title="definition">countType</span></a> := @<a class="idref" href="mathcomp.ssreflect.choice.html#Countable.Pack"><span class="id" title="constructor">Countable.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.ClassDef.cT"><span class="id" title="variable">cT</span></a> (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.fin_"><span class="id" title="abbreviation">fin_</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.xclass"><span class="id" title="abbreviation">xclass</span></a>) <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Lmodule.finType"><span class="id" title="definition">finType</span></a> := @<a class="idref" href="mathcomp.ssreflect.fintype.html#Finite.Pack"><span class="id" title="constructor">Finite.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.ClassDef.cT"><span class="id" title="variable">cT</span></a> (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.fin_"><span class="id" title="abbreviation">fin_</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.xclass"><span class="id" title="abbreviation">xclass</span></a>) <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Lmodule.zmodType"><span class="id" title="definition">zmodType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Zmodule.Pack"><span class="id" title="constructor">GRing.Zmodule.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Lmodule.finZmodType"><span class="id" title="definition">finZmodType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.Pack"><span class="id" title="constructor">Zmodule.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Lmodule.lmodType"><span class="id" title="definition">lmodType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Lmodule.Pack"><span class="id" title="constructor">GRing.Lmodule.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.ClassDef.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.ClassDef.phR"><span class="id" title="variable">phR</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Lmodule.join_finType"><span class="id" title="definition">join_finType</span></a> := @<a class="idref" href="mathcomp.ssreflect.fintype.html#Finite.Pack"><span class="id" title="constructor">Finite.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.lmodType"><span class="id" title="definition">lmodType</span></a> (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.fin_"><span class="id" title="abbreviation">fin_</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.xclass"><span class="id" title="abbreviation">xclass</span></a>) <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Lmodule.join_finZmodType"><span class="id" title="definition">join_finZmodType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.Pack"><span class="id" title="constructor">Zmodule.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.lmodType"><span class="id" title="definition">lmodType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Lmodule.baseFinGroupType"><span class="id" title="definition">baseFinGroupType</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.base_group"><span class="id" title="abbreviation">base_group</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.zmodType"><span class="id" title="definition">zmodType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.finType"><span class="id" title="definition">finType</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Lmodule.finGroupType"><span class="id" title="definition">finGroupType</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.fin_group"><span class="id" title="abbreviation">fin_group</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.baseFinGroupType"><span class="id" title="definition">baseFinGroupType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.zmodType"><span class="id" title="definition">zmodType</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Lmodule.join_baseFinGroupType"><span class="id" title="definition">join_baseFinGroupType</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.base_group"><span class="id" title="abbreviation">base_group</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.lmodType"><span class="id" title="definition">lmodType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.zmodType"><span class="id" title="definition">zmodType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.finType"><span class="id" title="definition">finType</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Lmodule.join_finGroupType"><span class="id" title="definition">join_finGroupType</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.fin_group"><span class="id" title="abbreviation">fin_group</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.join_baseFinGroupType"><span class="id" title="definition">join_baseFinGroupType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.zmodType"><span class="id" title="definition">zmodType</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.ClassDef"><span class="id" title="section">ClassDef</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Module</span> <span class="id" title="keyword">Import</span> <a name="FinRing.Lmodule.Exports"><span class="id" title="module">Exports</span></a>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.base"><span class="id" title="projection">base</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.base"><span class="id" title="projection">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.base"><span class="id" title="projection">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.base"><span class="id" title="projection">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.base"><span class="id" title="projection">GRing.Lmodule.class_of</span></a>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.base2"><span class="id" title="definition">base2</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.base2"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.base2"><span class="id" title="definition">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.base2"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.base2"><span class="id" title="definition">Zmodule.class_of</span></a>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.sort"><span class="id" title="projection">sort</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.sort"><span class="id" title="projection">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.sort"><span class="id" title="projection">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.sort"><span class="id" title="projection">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.sort"><span class="id" title="projection">Sortclass</span></a>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.eqType"><span class="id" title="definition">eqType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.eqType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.eqType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.eqType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.eqType"><span class="id" title="definition">Equality.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">eqType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.choiceType"><span class="id" title="definition">choiceType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.choiceType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.choiceType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.choiceType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.choiceType"><span class="id" title="definition">Choice.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">choiceType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.countType"><span class="id" title="definition">countType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.countType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.countType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.countType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.countType"><span class="id" title="definition">Countable.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">countType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.finType"><span class="id" title="definition">finType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.finType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.finType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.finType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.finType"><span class="id" title="definition">Finite.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">finType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.zmodType"><span class="id" title="definition">zmodType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.zmodType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.zmodType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.zmodType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.zmodType"><span class="id" title="definition">GRing.Zmodule.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">zmodType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.finZmodType"><span class="id" title="definition">finZmodType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.finZmodType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.finZmodType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.finZmodType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.finZmodType"><span class="id" title="definition">Zmodule.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">finZmodType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.lmodType"><span class="id" title="definition">lmodType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.lmodType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.lmodType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.lmodType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.lmodType"><span class="id" title="definition">GRing.Lmodule.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">lmodType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_finType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_finZmodType</span>.<br/>
+<span class="id" title="keyword">Notation</span> <a name="FinRing.Lmodule.Exports.finLmodType"><span class="id" title="abbreviation">finLmodType</span></a> <span class="id" title="var">R</span> := (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.type"><span class="id" title="record">FinRing.Lmodule.type</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#Phant"><span class="id" title="constructor">Phant</span></a> <span class="id" title="var">R</span>)).<br/>
+<span class="id" title="keyword">Notation</span> <a name="73928e07fdf596d7d0d44cccaf9a9cb3"><span class="id" title="notation">&quot;</span></a>[ 'finLmodType' R 'of' T ]" := (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.do_pack"><span class="id" title="abbreviation">do_pack</span></a> (@<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.pack"><span class="id" title="definition">pack</span></a> <span class="id" title="var">_</span> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#Phant"><span class="id" title="constructor">Phant</span></a> <span class="id" title="var">R</span>)) <span class="id" title="var">T</span>)<br/>
+&nbsp;&nbsp;(<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 0, <span class="id" title="var">format</span> "[ 'finLmodType' R 'of' T ]") : <span class="id" title="var">form_scope</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">baseFinGroupType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">finGroupType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_baseFinGroupType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_finGroupType</span>.<br/>
+<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.Exports"><span class="id" title="module">Exports</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule"><span class="id" title="module">Lmodule</span></a>.<br/>
+<span class="id" title="keyword">Import</span> <span class="id" title="var">Lmodule.Exports</span>.<br/>
+
+<br/>
+<span class="id" title="keyword">Module</span> <a name="FinRing.Lalgebra"><span class="id" title="module">Lalgebra</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Section</span> <a name="FinRing.Lalgebra.ClassDef"><span class="id" title="section">ClassDef</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Variable</span> <a name="FinRing.Lalgebra.ClassDef.R"><span class="id" title="variable">R</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Ring.Exports.ringType"><span class="id" title="abbreviation">ringType</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Record</span> <a name="FinRing.Lalgebra.class_of"><span class="id" title="record">class_of</span></a> <span class="id" title="var">M</span> :=<br/>
+&nbsp;&nbsp;<a name="FinRing.Lalgebra.Class"><span class="id" title="constructor">Class</span></a> { <a name="FinRing.Lalgebra.base"><span class="id" title="projection">base</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Lalgebra.class_of"><span class="id" title="record">GRing.Lalgebra.class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.ClassDef.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#M"><span class="id" title="variable">M</span></a>; <a name="FinRing.Lalgebra.mixin"><span class="id" title="projection">mixin</span></a> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.mixin_of"><span class="id" title="abbreviation">mixin_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#M"><span class="id" title="variable">M</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#base"><span class="id" title="method">base</span></a> }.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Lalgebra.base2"><span class="id" title="definition">base2</span></a> <span class="id" title="var">M</span> (<span class="id" title="var">c</span> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.class_of"><span class="id" title="record">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#M"><span class="id" title="variable">M</span></a>) := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.Class"><span class="id" title="constructor">Ring.Class</span></a> (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.mixin"><span class="id" title="projection">mixin</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#c"><span class="id" title="variable">c</span></a>).<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Lalgebra.base3"><span class="id" title="definition">base3</span></a> <span class="id" title="var">M</span> (<span class="id" title="var">c</span> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.class_of"><span class="id" title="record">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#M"><span class="id" title="variable">M</span></a>) := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.Class"><span class="id" title="constructor">Lmodule.Class</span></a> <span class="id" title="var">_</span> <span class="id" title="var">_</span> (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.base"><span class="id" title="projection">base</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#c"><span class="id" title="variable">c</span></a>) (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.mixin"><span class="id" title="projection">mixin</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#c"><span class="id" title="variable">c</span></a>).<br/>
+
+<br/>
+<span class="id" title="keyword">Structure</span> <a name="FinRing.Lalgebra.type"><span class="id" title="record">type</span></a> (<span class="id" title="var">phR</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#phant"><span class="id" title="inductive">phant</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.ClassDef.R"><span class="id" title="variable">R</span></a>) := <a name="FinRing.Lalgebra.Pack"><span class="id" title="constructor">Pack</span></a> {<a name="FinRing.Lalgebra.sort"><span class="id" title="projection">sort</span></a>; <span class="id" title="var">_</span> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.class_of"><span class="id" title="record">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#sort"><span class="id" title="method">sort</span></a>; <span class="id" title="var">_</span> : <span class="id" title="keyword">Type</span>}.<br/>
+<span class="id" title="keyword">Variables</span> (<a name="FinRing.Lalgebra.ClassDef.phR"><span class="id" title="variable">phR</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#phant"><span class="id" title="inductive">phant</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.ClassDef.R"><span class="id" title="variable">R</span></a>) (<a name="FinRing.Lalgebra.ClassDef.cT"><span class="id" title="variable">cT</span></a> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.type"><span class="id" title="record">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#phR"><span class="id" title="variable">phR</span></a>).<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Lalgebra.pack"><span class="id" title="definition">pack</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.gen_pack"><span class="id" title="definition">gen_pack</span></a> (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.Pack"><span class="id" title="constructor">Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.ClassDef.phR"><span class="id" title="variable">phR</span></a>) <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.Class"><span class="id" title="constructor">Class</span></a> (@<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Lalgebra.class"><span class="id" title="definition">GRing.Lalgebra.class</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.ClassDef.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.ClassDef.phR"><span class="id" title="variable">phR</span></a>).<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Lalgebra.class"><span class="id" title="definition">class</span></a> := <span class="id" title="keyword">let</span>: <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.Pack"><span class="id" title="constructor">Pack</span></a> <span class="id" title="var">_</span> <span class="id" title="var">c</span> <span class="id" title="var">_</span> <span class="id" title="keyword">as</span> <span class="id" title="var">cT'</span> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.ClassDef.cT"><span class="id" title="variable">cT</span></a> <span class="id" title="keyword">return</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.class_of"><span class="id" title="record">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#cT'"><span class="id" title="variable">cT'</span></a> <span class="id" title="tactic">in</span> <span class="id" title="var">c</span>.<br/>
+<span class="id" title="keyword">Let</span> <a name="FinRing.Lalgebra.ClassDef.xT"><span class="id" title="variable">xT</span></a> := <span class="id" title="keyword">let</span>: <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.Pack"><span class="id" title="constructor">Pack</span></a> <span class="id" title="var">T</span> <span class="id" title="var">_</span> <span class="id" title="var">_</span> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.ClassDef.cT"><span class="id" title="variable">cT</span></a> <span class="id" title="tactic">in</span> <span class="id" title="var">T</span>.<br/>
+<span class="id" title="keyword">Notation</span> <a name="FinRing.Lalgebra.xclass"><span class="id" title="abbreviation">xclass</span></a> := (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.class"><span class="id" title="definition">class</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#4509b22bf26e3d6d771897e22bd8bc8f"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.class_of"><span class="id" title="record">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>).<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Lalgebra.eqType"><span class="id" title="definition">eqType</span></a> := @<a class="idref" href="mathcomp.ssreflect.eqtype.html#Equality.Pack"><span class="id" title="constructor">Equality.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Lalgebra.choiceType"><span class="id" title="definition">choiceType</span></a> := @<a class="idref" href="mathcomp.ssreflect.choice.html#Choice.Pack"><span class="id" title="constructor">Choice.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Lalgebra.countType"><span class="id" title="definition">countType</span></a> := @<a class="idref" href="mathcomp.ssreflect.choice.html#Countable.Pack"><span class="id" title="constructor">Countable.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.ClassDef.cT"><span class="id" title="variable">cT</span></a> (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.fin_"><span class="id" title="abbreviation">fin_</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.xclass"><span class="id" title="abbreviation">xclass</span></a>) <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Lalgebra.finType"><span class="id" title="definition">finType</span></a> := @<a class="idref" href="mathcomp.ssreflect.fintype.html#Finite.Pack"><span class="id" title="constructor">Finite.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.ClassDef.cT"><span class="id" title="variable">cT</span></a> (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.fin_"><span class="id" title="abbreviation">fin_</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.xclass"><span class="id" title="abbreviation">xclass</span></a>) <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Lalgebra.zmodType"><span class="id" title="definition">zmodType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Zmodule.Pack"><span class="id" title="constructor">GRing.Zmodule.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Lalgebra.finZmodType"><span class="id" title="definition">finZmodType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.Pack"><span class="id" title="constructor">Zmodule.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Lalgebra.ringType"><span class="id" title="definition">ringType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Ring.Pack"><span class="id" title="constructor">GRing.Ring.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Lalgebra.finRingType"><span class="id" title="definition">finRingType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.Pack"><span class="id" title="constructor">Ring.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Lalgebra.lmodType"><span class="id" title="definition">lmodType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Lmodule.Pack"><span class="id" title="constructor">GRing.Lmodule.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.ClassDef.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.ClassDef.phR"><span class="id" title="variable">phR</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Lalgebra.finLmodType"><span class="id" title="definition">finLmodType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.Pack"><span class="id" title="constructor">Lmodule.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.ClassDef.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.ClassDef.phR"><span class="id" title="variable">phR</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Lalgebra.lalgType"><span class="id" title="definition">lalgType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Lalgebra.Pack"><span class="id" title="constructor">GRing.Lalgebra.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.ClassDef.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.ClassDef.phR"><span class="id" title="variable">phR</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Lalgebra.join_finType"><span class="id" title="definition">join_finType</span></a> := @<a class="idref" href="mathcomp.ssreflect.fintype.html#Finite.Pack"><span class="id" title="constructor">Finite.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.lalgType"><span class="id" title="definition">lalgType</span></a> (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.fin_"><span class="id" title="abbreviation">fin_</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.xclass"><span class="id" title="abbreviation">xclass</span></a>) <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Lalgebra.join_finZmodType"><span class="id" title="definition">join_finZmodType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.Pack"><span class="id" title="constructor">Zmodule.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.lalgType"><span class="id" title="definition">lalgType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Lalgebra.join_finLmodType"><span class="id" title="definition">join_finLmodType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.Pack"><span class="id" title="constructor">Lmodule.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.ClassDef.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.ClassDef.phR"><span class="id" title="variable">phR</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.lalgType"><span class="id" title="definition">lalgType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Lalgebra.join_finRingType"><span class="id" title="definition">join_finRingType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.Pack"><span class="id" title="constructor">Ring.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.lalgType"><span class="id" title="definition">lalgType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Lalgebra.rjoin_finLmodType"><span class="id" title="definition">rjoin_finLmodType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.Pack"><span class="id" title="constructor">Lmodule.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.ClassDef.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.ClassDef.phR"><span class="id" title="variable">phR</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.ringType"><span class="id" title="definition">ringType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Lalgebra.ljoin_finRingType"><span class="id" title="definition">ljoin_finRingType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.Pack"><span class="id" title="constructor">Ring.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.lmodType"><span class="id" title="definition">lmodType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Lalgebra.fljoin_finRingType"><span class="id" title="definition">fljoin_finRingType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.Pack"><span class="id" title="constructor">Ring.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.finLmodType"><span class="id" title="definition">finLmodType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Lalgebra.baseFinGroupType"><span class="id" title="definition">baseFinGroupType</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.base_group"><span class="id" title="abbreviation">base_group</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.zmodType"><span class="id" title="definition">zmodType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.finType"><span class="id" title="definition">finType</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Lalgebra.finGroupType"><span class="id" title="definition">finGroupType</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.fin_group"><span class="id" title="abbreviation">fin_group</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.baseFinGroupType"><span class="id" title="definition">baseFinGroupType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.zmodType"><span class="id" title="definition">zmodType</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Lalgebra.join_baseFinGroupType"><span class="id" title="definition">join_baseFinGroupType</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.base_group"><span class="id" title="abbreviation">base_group</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.lalgType"><span class="id" title="definition">lalgType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.zmodType"><span class="id" title="definition">zmodType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.finType"><span class="id" title="definition">finType</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Lalgebra.join_finGroupType"><span class="id" title="definition">join_finGroupType</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.fin_group"><span class="id" title="abbreviation">fin_group</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.join_baseFinGroupType"><span class="id" title="definition">join_baseFinGroupType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.zmodType"><span class="id" title="definition">zmodType</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.ClassDef"><span class="id" title="section">ClassDef</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Module</span> <a name="FinRing.Lalgebra.Exports"><span class="id" title="module">Exports</span></a>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.base"><span class="id" title="projection">base</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.base"><span class="id" title="projection">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.base"><span class="id" title="projection">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.base"><span class="id" title="projection">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.base"><span class="id" title="projection">GRing.Lalgebra.class_of</span></a>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.base2"><span class="id" title="definition">base2</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.base2"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.base2"><span class="id" title="definition">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.base2"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.base2"><span class="id" title="definition">Ring.class_of</span></a>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.base3"><span class="id" title="definition">base3</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.base3"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.base3"><span class="id" title="definition">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.base3"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.base3"><span class="id" title="definition">Lmodule.class_of</span></a>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.sort"><span class="id" title="projection">sort</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.sort"><span class="id" title="projection">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.sort"><span class="id" title="projection">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.sort"><span class="id" title="projection">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.sort"><span class="id" title="projection">Sortclass</span></a>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.eqType"><span class="id" title="definition">eqType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.eqType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.eqType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.eqType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.eqType"><span class="id" title="definition">Equality.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">eqType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.choiceType"><span class="id" title="definition">choiceType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.choiceType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.choiceType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.choiceType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.choiceType"><span class="id" title="definition">Choice.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">choiceType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.countType"><span class="id" title="definition">countType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.countType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.countType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.countType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.countType"><span class="id" title="definition">Countable.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">countType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.finType"><span class="id" title="definition">finType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.finType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.finType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.finType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.finType"><span class="id" title="definition">Finite.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">finType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.zmodType"><span class="id" title="definition">zmodType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.zmodType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.zmodType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.zmodType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.zmodType"><span class="id" title="definition">GRing.Zmodule.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">zmodType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.finZmodType"><span class="id" title="definition">finZmodType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.finZmodType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.finZmodType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.finZmodType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.finZmodType"><span class="id" title="definition">Zmodule.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">finZmodType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.ringType"><span class="id" title="definition">ringType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.ringType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.ringType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.ringType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.ringType"><span class="id" title="definition">GRing.Ring.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">ringType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.finRingType"><span class="id" title="definition">finRingType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.finRingType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.finRingType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.finRingType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.finRingType"><span class="id" title="definition">Ring.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">finRingType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.lmodType"><span class="id" title="definition">lmodType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.lmodType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.lmodType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.lmodType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.lmodType"><span class="id" title="definition">GRing.Lmodule.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">lmodType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.finLmodType"><span class="id" title="definition">finLmodType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.finLmodType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.finLmodType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.finLmodType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.finLmodType"><span class="id" title="definition">Lmodule.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">finLmodType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.lalgType"><span class="id" title="definition">lalgType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.lalgType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.lalgType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.lalgType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.lalgType"><span class="id" title="definition">GRing.Lalgebra.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">lalgType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_finType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_finZmodType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_finLmodType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_finRingType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">rjoin_finLmodType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">ljoin_finRingType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">fljoin_finRingType</span>.<br/>
+<span class="id" title="keyword">Notation</span> <a name="FinRing.Lalgebra.Exports.finLalgType"><span class="id" title="abbreviation">finLalgType</span></a> <span class="id" title="var">R</span> := (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.type"><span class="id" title="record">FinRing.Lalgebra.type</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#Phant"><span class="id" title="constructor">Phant</span></a> <span class="id" title="var">R</span>)).<br/>
+<span class="id" title="keyword">Notation</span> <a name="f791552e58608a16cb248da4e7f34691"><span class="id" title="notation">&quot;</span></a>[ 'finLalgType' R 'of' T ]" := (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.do_pack"><span class="id" title="abbreviation">do_pack</span></a> (@<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.pack"><span class="id" title="definition">pack</span></a> <span class="id" title="var">_</span> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#Phant"><span class="id" title="constructor">Phant</span></a> <span class="id" title="var">R</span>)) <span class="id" title="var">T</span>)<br/>
+&nbsp;&nbsp;(<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 0, <span class="id" title="var">format</span> "[ 'finLalgType' R 'of' T ]") : <span class="id" title="var">form_scope</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">baseFinGroupType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">finGroupType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_baseFinGroupType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_finGroupType</span>.<br/>
+<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.Exports"><span class="id" title="module">Exports</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra"><span class="id" title="module">Lalgebra</span></a>.<br/>
+<span class="id" title="keyword">Import</span> <span class="id" title="var">Lalgebra.Exports</span>.<br/>
+
+<br/>
+<span class="id" title="keyword">Module</span> <a name="FinRing.Algebra"><span class="id" title="module">Algebra</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Section</span> <a name="FinRing.Algebra.ClassDef"><span class="id" title="section">ClassDef</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Variable</span> <a name="FinRing.Algebra.ClassDef.R"><span class="id" title="variable">R</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Ring.Exports.ringType"><span class="id" title="abbreviation">ringType</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Record</span> <a name="FinRing.Algebra.class_of"><span class="id" title="record">class_of</span></a> <span class="id" title="var">M</span> :=<br/>
+&nbsp;&nbsp;<a name="FinRing.Algebra.Class"><span class="id" title="constructor">Class</span></a> { <a name="FinRing.Algebra.base"><span class="id" title="projection">base</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Algebra.class_of"><span class="id" title="record">GRing.Algebra.class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.ClassDef.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#M"><span class="id" title="variable">M</span></a>; <a name="FinRing.Algebra.mixin"><span class="id" title="projection">mixin</span></a> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.mixin_of"><span class="id" title="abbreviation">mixin_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#M"><span class="id" title="variable">M</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#base"><span class="id" title="method">base</span></a> }.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Algebra.base2"><span class="id" title="definition">base2</span></a> <span class="id" title="var">M</span> (<span class="id" title="var">c</span> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.class_of"><span class="id" title="record">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#M"><span class="id" title="variable">M</span></a>) := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.Class"><span class="id" title="constructor">Lalgebra.Class</span></a> (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.mixin"><span class="id" title="projection">mixin</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#c"><span class="id" title="variable">c</span></a>).<br/>
+
+<br/>
+<span class="id" title="keyword">Structure</span> <a name="FinRing.Algebra.type"><span class="id" title="record">type</span></a> (<span class="id" title="var">phR</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#phant"><span class="id" title="inductive">phant</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.ClassDef.R"><span class="id" title="variable">R</span></a>) := <a name="FinRing.Algebra.Pack"><span class="id" title="constructor">Pack</span></a> {<a name="FinRing.Algebra.sort"><span class="id" title="projection">sort</span></a>; <span class="id" title="var">_</span> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.class_of"><span class="id" title="record">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#sort"><span class="id" title="method">sort</span></a>; <span class="id" title="var">_</span> : <span class="id" title="keyword">Type</span>}.<br/>
+<span class="id" title="keyword">Variables</span> (<a name="FinRing.Algebra.ClassDef.phR"><span class="id" title="variable">phR</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#phant"><span class="id" title="inductive">phant</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.ClassDef.R"><span class="id" title="variable">R</span></a>) (<a name="FinRing.Algebra.ClassDef.cT"><span class="id" title="variable">cT</span></a> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.type"><span class="id" title="record">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#phR"><span class="id" title="variable">phR</span></a>).<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Algebra.pack"><span class="id" title="definition">pack</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.gen_pack"><span class="id" title="definition">gen_pack</span></a> (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.Pack"><span class="id" title="constructor">Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.ClassDef.phR"><span class="id" title="variable">phR</span></a>) <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.Class"><span class="id" title="constructor">Class</span></a> (@<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Algebra.class"><span class="id" title="definition">GRing.Algebra.class</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.ClassDef.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.ClassDef.phR"><span class="id" title="variable">phR</span></a>).<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Algebra.class"><span class="id" title="definition">class</span></a> := <span class="id" title="keyword">let</span>: <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.Pack"><span class="id" title="constructor">Pack</span></a> <span class="id" title="var">_</span> <span class="id" title="var">c</span> <span class="id" title="var">_</span> <span class="id" title="keyword">as</span> <span class="id" title="var">cT'</span> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.ClassDef.cT"><span class="id" title="variable">cT</span></a> <span class="id" title="keyword">return</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.class_of"><span class="id" title="record">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#cT'"><span class="id" title="variable">cT'</span></a> <span class="id" title="tactic">in</span> <span class="id" title="var">c</span>.<br/>
+<span class="id" title="keyword">Let</span> <a name="FinRing.Algebra.ClassDef.xT"><span class="id" title="variable">xT</span></a> := <span class="id" title="keyword">let</span>: <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.Pack"><span class="id" title="constructor">Pack</span></a> <span class="id" title="var">T</span> <span class="id" title="var">_</span> <span class="id" title="var">_</span> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.ClassDef.cT"><span class="id" title="variable">cT</span></a> <span class="id" title="tactic">in</span> <span class="id" title="var">T</span>.<br/>
+<span class="id" title="keyword">Notation</span> <a name="FinRing.Algebra.xclass"><span class="id" title="abbreviation">xclass</span></a> := (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.class"><span class="id" title="definition">class</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#4509b22bf26e3d6d771897e22bd8bc8f"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.class_of"><span class="id" title="record">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>).<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Algebra.eqType"><span class="id" title="definition">eqType</span></a> := @<a class="idref" href="mathcomp.ssreflect.eqtype.html#Equality.Pack"><span class="id" title="constructor">Equality.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Algebra.choiceType"><span class="id" title="definition">choiceType</span></a> := @<a class="idref" href="mathcomp.ssreflect.choice.html#Choice.Pack"><span class="id" title="constructor">Choice.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Algebra.countType"><span class="id" title="definition">countType</span></a> := @<a class="idref" href="mathcomp.ssreflect.choice.html#Countable.Pack"><span class="id" title="constructor">Countable.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.ClassDef.cT"><span class="id" title="variable">cT</span></a> (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.fin_"><span class="id" title="abbreviation">fin_</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.xclass"><span class="id" title="abbreviation">xclass</span></a>) <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Algebra.finType"><span class="id" title="definition">finType</span></a> := @<a class="idref" href="mathcomp.ssreflect.fintype.html#Finite.Pack"><span class="id" title="constructor">Finite.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.ClassDef.cT"><span class="id" title="variable">cT</span></a> (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.fin_"><span class="id" title="abbreviation">fin_</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.xclass"><span class="id" title="abbreviation">xclass</span></a>) <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Algebra.zmodType"><span class="id" title="definition">zmodType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Zmodule.Pack"><span class="id" title="constructor">GRing.Zmodule.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Algebra.finZmodType"><span class="id" title="definition">finZmodType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.Pack"><span class="id" title="constructor">Zmodule.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Algebra.ringType"><span class="id" title="definition">ringType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Ring.Pack"><span class="id" title="constructor">GRing.Ring.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Algebra.finRingType"><span class="id" title="definition">finRingType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.Pack"><span class="id" title="constructor">Ring.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Algebra.lmodType"><span class="id" title="definition">lmodType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Lmodule.Pack"><span class="id" title="constructor">GRing.Lmodule.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.ClassDef.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.ClassDef.phR"><span class="id" title="variable">phR</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Algebra.finLmodType"><span class="id" title="definition">finLmodType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.Pack"><span class="id" title="constructor">Lmodule.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.ClassDef.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.ClassDef.phR"><span class="id" title="variable">phR</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Algebra.lalgType"><span class="id" title="definition">lalgType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Lalgebra.Pack"><span class="id" title="constructor">GRing.Lalgebra.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.ClassDef.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.ClassDef.phR"><span class="id" title="variable">phR</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Algebra.finLalgType"><span class="id" title="definition">finLalgType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.Pack"><span class="id" title="constructor">Lalgebra.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.ClassDef.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.ClassDef.phR"><span class="id" title="variable">phR</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Algebra.algType"><span class="id" title="definition">algType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Algebra.Pack"><span class="id" title="constructor">GRing.Algebra.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.ClassDef.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.ClassDef.phR"><span class="id" title="variable">phR</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Algebra.join_finType"><span class="id" title="definition">join_finType</span></a> := @<a class="idref" href="mathcomp.ssreflect.fintype.html#Finite.Pack"><span class="id" title="constructor">Finite.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.algType"><span class="id" title="definition">algType</span></a> (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.fin_"><span class="id" title="abbreviation">fin_</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.xclass"><span class="id" title="abbreviation">xclass</span></a>) <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Algebra.join_finZmodType"><span class="id" title="definition">join_finZmodType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.Pack"><span class="id" title="constructor">Zmodule.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.algType"><span class="id" title="definition">algType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Algebra.join_finRingType"><span class="id" title="definition">join_finRingType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.Pack"><span class="id" title="constructor">Ring.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.algType"><span class="id" title="definition">algType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Algebra.join_finLmodType"><span class="id" title="definition">join_finLmodType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.Pack"><span class="id" title="constructor">Lmodule.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.ClassDef.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.ClassDef.phR"><span class="id" title="variable">phR</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.algType"><span class="id" title="definition">algType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Algebra.join_finLalgType"><span class="id" title="definition">join_finLalgType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.Pack"><span class="id" title="constructor">Lalgebra.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.ClassDef.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.ClassDef.phR"><span class="id" title="variable">phR</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.algType"><span class="id" title="definition">algType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Algebra.baseFinGroupType"><span class="id" title="definition">baseFinGroupType</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.base_group"><span class="id" title="abbreviation">base_group</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.zmodType"><span class="id" title="definition">zmodType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.finType"><span class="id" title="definition">finType</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Algebra.finGroupType"><span class="id" title="definition">finGroupType</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.fin_group"><span class="id" title="abbreviation">fin_group</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.baseFinGroupType"><span class="id" title="definition">baseFinGroupType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.zmodType"><span class="id" title="definition">zmodType</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Algebra.join_baseFinGroupType"><span class="id" title="definition">join_baseFinGroupType</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.base_group"><span class="id" title="abbreviation">base_group</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.algType"><span class="id" title="definition">algType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.zmodType"><span class="id" title="definition">zmodType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.finType"><span class="id" title="definition">finType</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Algebra.join_finGroupType"><span class="id" title="definition">join_finGroupType</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.fin_group"><span class="id" title="abbreviation">fin_group</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.join_baseFinGroupType"><span class="id" title="definition">join_baseFinGroupType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.zmodType"><span class="id" title="definition">zmodType</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.ClassDef"><span class="id" title="section">ClassDef</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Module</span> <a name="FinRing.Algebra.Exports"><span class="id" title="module">Exports</span></a>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.base"><span class="id" title="projection">base</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.base"><span class="id" title="projection">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.base"><span class="id" title="projection">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.base"><span class="id" title="projection">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.base"><span class="id" title="projection">GRing.Algebra.class_of</span></a>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.base2"><span class="id" title="definition">base2</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.base2"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.base2"><span class="id" title="definition">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.base2"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.base2"><span class="id" title="definition">Lalgebra.class_of</span></a>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.sort"><span class="id" title="projection">sort</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.sort"><span class="id" title="projection">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.sort"><span class="id" title="projection">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.sort"><span class="id" title="projection">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.sort"><span class="id" title="projection">Sortclass</span></a>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.eqType"><span class="id" title="definition">eqType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.eqType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.eqType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.eqType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.eqType"><span class="id" title="definition">Equality.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">eqType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.choiceType"><span class="id" title="definition">choiceType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.choiceType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.choiceType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.choiceType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.choiceType"><span class="id" title="definition">Choice.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">choiceType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.countType"><span class="id" title="definition">countType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.countType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.countType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.countType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.countType"><span class="id" title="definition">Countable.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">countType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.finType"><span class="id" title="definition">finType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.finType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.finType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.finType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.finType"><span class="id" title="definition">Finite.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">finType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.zmodType"><span class="id" title="definition">zmodType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.zmodType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.zmodType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.zmodType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.zmodType"><span class="id" title="definition">GRing.Zmodule.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">zmodType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.finZmodType"><span class="id" title="definition">finZmodType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.finZmodType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.finZmodType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.finZmodType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.finZmodType"><span class="id" title="definition">Zmodule.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">finZmodType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.ringType"><span class="id" title="definition">ringType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.ringType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.ringType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.ringType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.ringType"><span class="id" title="definition">GRing.Ring.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">ringType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.finRingType"><span class="id" title="definition">finRingType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.finRingType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.finRingType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.finRingType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.finRingType"><span class="id" title="definition">Ring.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">finRingType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.lmodType"><span class="id" title="definition">lmodType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.lmodType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.lmodType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.lmodType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.lmodType"><span class="id" title="definition">GRing.Lmodule.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">lmodType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.finLmodType"><span class="id" title="definition">finLmodType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.finLmodType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.finLmodType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.finLmodType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.finLmodType"><span class="id" title="definition">Lmodule.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">finLmodType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.lalgType"><span class="id" title="definition">lalgType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.lalgType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.lalgType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.lalgType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.lalgType"><span class="id" title="definition">GRing.Lalgebra.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">lalgType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.finLalgType"><span class="id" title="definition">finLalgType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.finLalgType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.finLalgType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.finLalgType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.finLalgType"><span class="id" title="definition">Lalgebra.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">finLalgType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.algType"><span class="id" title="definition">algType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.algType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.algType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.algType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.algType"><span class="id" title="definition">GRing.Algebra.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">algType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_finType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_finZmodType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_finLmodType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_finRingType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_finLalgType</span>.<br/>
+<span class="id" title="keyword">Notation</span> <a name="FinRing.Algebra.Exports.finAlgType"><span class="id" title="abbreviation">finAlgType</span></a> <span class="id" title="var">R</span> := (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.type"><span class="id" title="record">type</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#Phant"><span class="id" title="constructor">Phant</span></a> <span class="id" title="var">R</span>)).<br/>
+<span class="id" title="keyword">Notation</span> <a name="1f3938acab41e5853e751c34c441bf83"><span class="id" title="notation">&quot;</span></a>[ 'finAlgType' R 'of' T ]" := (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.do_pack"><span class="id" title="abbreviation">do_pack</span></a> (@<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.pack"><span class="id" title="definition">pack</span></a> <span class="id" title="var">_</span> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#Phant"><span class="id" title="constructor">Phant</span></a> <span class="id" title="var">R</span>)) <span class="id" title="var">T</span>)<br/>
+&nbsp;&nbsp;(<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 0, <span class="id" title="var">format</span> "[ 'finAlgType' R 'of' T ]") : <span class="id" title="var">form_scope</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">baseFinGroupType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">finGroupType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_baseFinGroupType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_finGroupType</span>.<br/>
+<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.Exports"><span class="id" title="module">Exports</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra"><span class="id" title="module">Algebra</span></a>.<br/>
+<span class="id" title="keyword">Import</span> <span class="id" title="var">Algebra.Exports</span>.<br/>
+
+<br/>
+<span class="id" title="keyword">Module</span> <a name="FinRing.UnitAlgebra"><span class="id" title="module">UnitAlgebra</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Section</span> <a name="FinRing.UnitAlgebra.ClassDef"><span class="id" title="section">ClassDef</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Variable</span> <a name="FinRing.UnitAlgebra.ClassDef.R"><span class="id" title="variable">R</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.UnitRing.Exports.unitRingType"><span class="id" title="abbreviation">unitRingType</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Record</span> <a name="FinRing.UnitAlgebra.class_of"><span class="id" title="record">class_of</span></a> <span class="id" title="var">M</span> := <br/>
+&nbsp;&nbsp;<a name="FinRing.UnitAlgebra.Class"><span class="id" title="constructor">Class</span></a> { <a name="FinRing.UnitAlgebra.base"><span class="id" title="projection">base</span></a> : <a class="idref" href="mathcomp.algebra.ssralg.html#GRing.UnitAlgebra.class_of"><span class="id" title="record">GRing.UnitAlgebra.class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#M"><span class="id" title="variable">M</span></a>; <a name="FinRing.UnitAlgebra.mixin"><span class="id" title="projection">mixin</span></a> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.mixin_of"><span class="id" title="abbreviation">mixin_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#M"><span class="id" title="variable">M</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#base"><span class="id" title="method">base</span></a> }.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.UnitAlgebra.base2"><span class="id" title="definition">base2</span></a> <span class="id" title="var">M</span> (<span class="id" title="var">c</span> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.class_of"><span class="id" title="record">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#M"><span class="id" title="variable">M</span></a>) := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.Class"><span class="id" title="constructor">Algebra.Class</span></a> (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.mixin"><span class="id" title="projection">mixin</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#c"><span class="id" title="variable">c</span></a>).<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.UnitAlgebra.base3"><span class="id" title="definition">base3</span></a> <span class="id" title="var">M</span> (<span class="id" title="var">c</span> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.class_of"><span class="id" title="record">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#M"><span class="id" title="variable">M</span></a>) := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.Class"><span class="id" title="constructor">UnitRing.Class</span></a> <span class="id" title="var">_</span> (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.base"><span class="id" title="projection">base</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#c"><span class="id" title="variable">c</span></a>) (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.mixin"><span class="id" title="projection">mixin</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#c"><span class="id" title="variable">c</span></a>).<br/>
+
+<br/>
+
+<br/>
+<span class="id" title="keyword">Structure</span> <a name="FinRing.UnitAlgebra.type"><span class="id" title="record">type</span></a> (<span class="id" title="var">phR</span> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#phant"><span class="id" title="inductive">phant</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.R"><span class="id" title="variable">R</span></a>) := <a name="FinRing.UnitAlgebra.Pack"><span class="id" title="constructor">Pack</span></a> {<a name="FinRing.UnitAlgebra.sort"><span class="id" title="projection">sort</span></a>; <span class="id" title="var">_</span> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.class_of"><span class="id" title="record">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#sort"><span class="id" title="method">sort</span></a>; <span class="id" title="var">_</span> : <span class="id" title="keyword">Type</span>}.<br/>
+<span class="id" title="keyword">Variables</span> (<a name="FinRing.UnitAlgebra.ClassDef.phR"><span class="id" title="variable">phR</span></a> : <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#phant"><span class="id" title="inductive">phant</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.R"><span class="id" title="variable">R</span></a>) (<a name="FinRing.UnitAlgebra.ClassDef.cT"><span class="id" title="variable">cT</span></a> : <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.type"><span class="id" title="record">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#phR"><span class="id" title="variable">phR</span></a>).<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.UnitAlgebra.pack"><span class="id" title="definition">pack</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.gen_pack"><span class="id" title="definition">gen_pack</span></a> (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.Pack"><span class="id" title="constructor">Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.phR"><span class="id" title="variable">phR</span></a>) <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.Class"><span class="id" title="constructor">Class</span></a> (@<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.UnitAlgebra.class"><span class="id" title="definition">GRing.UnitAlgebra.class</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.phR"><span class="id" title="variable">phR</span></a>).<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.UnitAlgebra.class"><span class="id" title="definition">class</span></a> := <span class="id" title="keyword">let</span>: <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.Pack"><span class="id" title="constructor">Pack</span></a> <span class="id" title="var">_</span> <span class="id" title="var">c</span> <span class="id" title="var">_</span> <span class="id" title="keyword">as</span> <span class="id" title="var">cT'</span> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.cT"><span class="id" title="variable">cT</span></a> <span class="id" title="keyword">return</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.class_of"><span class="id" title="record">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#cT'"><span class="id" title="variable">cT'</span></a> <span class="id" title="tactic">in</span> <span class="id" title="var">c</span>.<br/>
+<span class="id" title="keyword">Let</span> <a name="FinRing.UnitAlgebra.ClassDef.xT"><span class="id" title="variable">xT</span></a> := <span class="id" title="keyword">let</span>: <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.Pack"><span class="id" title="constructor">Pack</span></a> <span class="id" title="var">T</span> <span class="id" title="var">_</span> <span class="id" title="var">_</span> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.cT"><span class="id" title="variable">cT</span></a> <span class="id" title="tactic">in</span> <span class="id" title="var">T</span>.<br/>
+<span class="id" title="keyword">Notation</span> <a name="FinRing.UnitAlgebra.xclass"><span class="id" title="abbreviation">xclass</span></a> := (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.class"><span class="id" title="definition">class</span></a> <a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#4509b22bf26e3d6d771897e22bd8bc8f"><span class="id" title="notation">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.class_of"><span class="id" title="record">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>).<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.UnitAlgebra.eqType"><span class="id" title="definition">eqType</span></a> := @<a class="idref" href="mathcomp.ssreflect.eqtype.html#Equality.Pack"><span class="id" title="constructor">Equality.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.UnitAlgebra.choiceType"><span class="id" title="definition">choiceType</span></a> := @<a class="idref" href="mathcomp.ssreflect.choice.html#Choice.Pack"><span class="id" title="constructor">Choice.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.UnitAlgebra.countType"><span class="id" title="definition">countType</span></a> := @<a class="idref" href="mathcomp.ssreflect.choice.html#Countable.Pack"><span class="id" title="constructor">Countable.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.cT"><span class="id" title="variable">cT</span></a> (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.fin_"><span class="id" title="abbreviation">fin_</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.xclass"><span class="id" title="abbreviation">xclass</span></a>) <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.UnitAlgebra.finType"><span class="id" title="definition">finType</span></a> := @<a class="idref" href="mathcomp.ssreflect.fintype.html#Finite.Pack"><span class="id" title="constructor">Finite.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.cT"><span class="id" title="variable">cT</span></a> (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.fin_"><span class="id" title="abbreviation">fin_</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.xclass"><span class="id" title="abbreviation">xclass</span></a>) <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.UnitAlgebra.zmodType"><span class="id" title="definition">zmodType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Zmodule.Pack"><span class="id" title="constructor">GRing.Zmodule.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.UnitAlgebra.finZmodType"><span class="id" title="definition">finZmodType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.Pack"><span class="id" title="constructor">Zmodule.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.UnitAlgebra.ringType"><span class="id" title="definition">ringType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Ring.Pack"><span class="id" title="constructor">GRing.Ring.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.UnitAlgebra.finRingType"><span class="id" title="definition">finRingType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.Pack"><span class="id" title="constructor">Ring.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.UnitAlgebra.unitRingType"><span class="id" title="definition">unitRingType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.UnitRing.Pack"><span class="id" title="constructor">GRing.UnitRing.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.UnitAlgebra.finUnitRingType"><span class="id" title="definition">finUnitRingType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.Pack"><span class="id" title="constructor">UnitRing.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.UnitAlgebra.lmodType"><span class="id" title="definition">lmodType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Lmodule.Pack"><span class="id" title="constructor">GRing.Lmodule.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.phR"><span class="id" title="variable">phR</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.UnitAlgebra.finLmodType"><span class="id" title="definition">finLmodType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.Pack"><span class="id" title="constructor">Lmodule.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.phR"><span class="id" title="variable">phR</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.UnitAlgebra.lalgType"><span class="id" title="definition">lalgType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Lalgebra.Pack"><span class="id" title="constructor">GRing.Lalgebra.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.phR"><span class="id" title="variable">phR</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.UnitAlgebra.finLalgType"><span class="id" title="definition">finLalgType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.Pack"><span class="id" title="constructor">Lalgebra.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.phR"><span class="id" title="variable">phR</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.UnitAlgebra.algType"><span class="id" title="definition">algType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.Algebra.Pack"><span class="id" title="constructor">GRing.Algebra.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.phR"><span class="id" title="variable">phR</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.UnitAlgebra.finAlgType"><span class="id" title="definition">finAlgType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.Pack"><span class="id" title="constructor">Algebra.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.phR"><span class="id" title="variable">phR</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.UnitAlgebra.unitAlgType"><span class="id" title="definition">unitAlgType</span></a> := @<a class="idref" href="mathcomp.algebra.ssralg.html#GRing.UnitAlgebra.Pack"><span class="id" title="constructor">GRing.UnitAlgebra.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.phR"><span class="id" title="variable">phR</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.UnitAlgebra.join_finType"><span class="id" title="definition">join_finType</span></a> := @<a class="idref" href="mathcomp.ssreflect.fintype.html#Finite.Pack"><span class="id" title="constructor">Finite.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.unitAlgType"><span class="id" title="definition">unitAlgType</span></a> (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.fin_"><span class="id" title="abbreviation">fin_</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.xclass"><span class="id" title="abbreviation">xclass</span></a>) <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.UnitAlgebra.join_finZmodType"><span class="id" title="definition">join_finZmodType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Zmodule.Pack"><span class="id" title="constructor">Zmodule.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.unitAlgType"><span class="id" title="definition">unitAlgType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.UnitAlgebra.join_finRingType"><span class="id" title="definition">join_finRingType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Ring.Pack"><span class="id" title="constructor">Ring.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.unitAlgType"><span class="id" title="definition">unitAlgType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.UnitAlgebra.join_finUnitRingType"><span class="id" title="definition">join_finUnitRingType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.Pack"><span class="id" title="constructor">UnitRing.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.unitAlgType"><span class="id" title="definition">unitAlgType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.UnitAlgebra.join_finLmodType"><span class="id" title="definition">join_finLmodType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.Pack"><span class="id" title="constructor">Lmodule.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.phR"><span class="id" title="variable">phR</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.unitAlgType"><span class="id" title="definition">unitAlgType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.UnitAlgebra.join_finLalgType"><span class="id" title="definition">join_finLalgType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.Pack"><span class="id" title="constructor">Lalgebra.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.phR"><span class="id" title="variable">phR</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.unitAlgType"><span class="id" title="definition">unitAlgType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.UnitAlgebra.join_finAlgType"><span class="id" title="definition">join_finAlgType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.Pack"><span class="id" title="constructor">Algebra.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.phR"><span class="id" title="variable">phR</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.unitAlgType"><span class="id" title="definition">unitAlgType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.UnitAlgebra.ljoin_finUnitRingType"><span class="id" title="definition">ljoin_finUnitRingType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.Pack"><span class="id" title="constructor">UnitRing.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.lmodType"><span class="id" title="definition">lmodType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.UnitAlgebra.fljoin_finUnitRingType"><span class="id" title="definition">fljoin_finUnitRingType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.Pack"><span class="id" title="constructor">UnitRing.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.finLmodType"><span class="id" title="definition">finLmodType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.UnitAlgebra.njoin_finUnitRingType"><span class="id" title="definition">njoin_finUnitRingType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.Pack"><span class="id" title="constructor">UnitRing.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.lalgType"><span class="id" title="definition">lalgType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.UnitAlgebra.fnjoin_finUnitRingType"><span class="id" title="definition">fnjoin_finUnitRingType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.Pack"><span class="id" title="constructor">UnitRing.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.finLalgType"><span class="id" title="definition">finLalgType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.UnitAlgebra.ajoin_finUnitRingType"><span class="id" title="definition">ajoin_finUnitRingType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.Pack"><span class="id" title="constructor">UnitRing.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.algType"><span class="id" title="definition">algType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.UnitAlgebra.fajoin_finUnitRingType"><span class="id" title="definition">fajoin_finUnitRingType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitRing.Pack"><span class="id" title="constructor">UnitRing.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.finAlgType"><span class="id" title="definition">finAlgType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.UnitAlgebra.ujoin_finLmodType"><span class="id" title="definition">ujoin_finLmodType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lmodule.Pack"><span class="id" title="constructor">Lmodule.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.phR"><span class="id" title="variable">phR</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.unitRingType"><span class="id" title="definition">unitRingType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.UnitAlgebra.ujoin_finLalgType"><span class="id" title="definition">ujoin_finLalgType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Lalgebra.Pack"><span class="id" title="constructor">Lalgebra.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.phR"><span class="id" title="variable">phR</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.unitRingType"><span class="id" title="definition">unitRingType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.UnitAlgebra.ujoin_finAlgType"><span class="id" title="definition">ujoin_finAlgType</span></a> := @<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Algebra.Pack"><span class="id" title="constructor">Algebra.Pack</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.R"><span class="id" title="variable">R</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.phR"><span class="id" title="variable">phR</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.unitRingType"><span class="id" title="definition">unitRingType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.xclass"><span class="id" title="abbreviation">xclass</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.xT"><span class="id" title="variable">xT</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.UnitAlgebra.baseFinGroupType"><span class="id" title="definition">baseFinGroupType</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.base_group"><span class="id" title="abbreviation">base_group</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef.cT"><span class="id" title="variable">cT</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.zmodType"><span class="id" title="definition">zmodType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.finType"><span class="id" title="definition">finType</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.UnitAlgebra.finGroupType"><span class="id" title="definition">finGroupType</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.fin_group"><span class="id" title="abbreviation">fin_group</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.baseFinGroupType"><span class="id" title="definition">baseFinGroupType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.zmodType"><span class="id" title="definition">zmodType</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.UnitAlgebra.join_baseFinGroupType"><span class="id" title="definition">join_baseFinGroupType</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.base_group"><span class="id" title="abbreviation">base_group</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.unitAlgType"><span class="id" title="definition">unitAlgType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.zmodType"><span class="id" title="definition">zmodType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.finType"><span class="id" title="definition">finType</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.UnitAlgebra.join_finGroupType"><span class="id" title="definition">join_finGroupType</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.fin_group"><span class="id" title="abbreviation">fin_group</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.join_baseFinGroupType"><span class="id" title="definition">join_baseFinGroupType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.zmodType"><span class="id" title="definition">zmodType</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ClassDef"><span class="id" title="section">ClassDef</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Module</span> <a name="FinRing.UnitAlgebra.Exports"><span class="id" title="module">Exports</span></a>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.base"><span class="id" title="projection">base</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.base"><span class="id" title="projection">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.base"><span class="id" title="projection">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.base"><span class="id" title="projection">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.base"><span class="id" title="projection">GRing.UnitAlgebra.class_of</span></a>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.base2"><span class="id" title="definition">base2</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.base2"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.base2"><span class="id" title="definition">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.base2"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.base2"><span class="id" title="definition">Algebra.class_of</span></a>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.base3"><span class="id" title="definition">base3</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.base3"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.base3"><span class="id" title="definition">class_of</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.base3"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.base3"><span class="id" title="definition">UnitRing.class_of</span></a>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.sort"><span class="id" title="projection">sort</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.sort"><span class="id" title="projection">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.sort"><span class="id" title="projection">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.sort"><span class="id" title="projection">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.sort"><span class="id" title="projection">Sortclass</span></a>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.eqType"><span class="id" title="definition">eqType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.eqType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.eqType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.eqType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.eqType"><span class="id" title="definition">Equality.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">eqType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.choiceType"><span class="id" title="definition">choiceType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.choiceType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.choiceType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.choiceType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.choiceType"><span class="id" title="definition">Choice.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">choiceType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.countType"><span class="id" title="definition">countType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.countType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.countType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.countType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.countType"><span class="id" title="definition">Countable.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">countType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.finType"><span class="id" title="definition">finType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.finType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.finType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.finType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.finType"><span class="id" title="definition">Finite.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">finType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.zmodType"><span class="id" title="definition">zmodType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.zmodType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.zmodType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.zmodType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.zmodType"><span class="id" title="definition">GRing.Zmodule.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">zmodType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.finZmodType"><span class="id" title="definition">finZmodType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.finZmodType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.finZmodType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.finZmodType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.finZmodType"><span class="id" title="definition">Zmodule.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">finZmodType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ringType"><span class="id" title="definition">ringType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ringType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ringType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ringType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.ringType"><span class="id" title="definition">GRing.Ring.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">ringType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.finRingType"><span class="id" title="definition">finRingType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.finRingType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.finRingType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.finRingType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.finRingType"><span class="id" title="definition">Ring.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">finRingType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.unitRingType"><span class="id" title="definition">unitRingType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.unitRingType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.unitRingType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.unitRingType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.unitRingType"><span class="id" title="definition">GRing.UnitRing.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">unitRingType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.finUnitRingType"><span class="id" title="definition">finUnitRingType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.finUnitRingType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.finUnitRingType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.finUnitRingType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.finUnitRingType"><span class="id" title="definition">UnitRing.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">finUnitRingType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.lmodType"><span class="id" title="definition">lmodType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.lmodType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.lmodType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.lmodType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.lmodType"><span class="id" title="definition">GRing.Lmodule.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">lmodType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.finLmodType"><span class="id" title="definition">finLmodType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.finLmodType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.finLmodType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.finLmodType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.finLmodType"><span class="id" title="definition">Lmodule.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">finLmodType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.lalgType"><span class="id" title="definition">lalgType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.lalgType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.lalgType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.lalgType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.lalgType"><span class="id" title="definition">GRing.Lalgebra.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">lalgType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.finLalgType"><span class="id" title="definition">finLalgType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.finLalgType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.finLalgType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.finLalgType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.finLalgType"><span class="id" title="definition">Lalgebra.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">finLalgType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.algType"><span class="id" title="definition">algType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.algType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.algType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.algType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.algType"><span class="id" title="definition">GRing.Algebra.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">algType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.finAlgType"><span class="id" title="definition">finAlgType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.finAlgType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.finAlgType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.finAlgType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.finAlgType"><span class="id" title="definition">Algebra.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">finAlgType</span>.<br/>
+<span class="id" title="keyword">Coercion</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.unitAlgType"><span class="id" title="definition">unitAlgType</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.unitAlgType"><span class="id" title="definition">:</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.unitAlgType"><span class="id" title="definition">type</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.unitAlgType"><span class="id" title="definition">&gt;-&gt;</span></a> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.unitAlgType"><span class="id" title="definition">GRing.UnitAlgebra.type</span></a>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">unitAlgType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_finType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_finZmodType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_finLmodType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_finRingType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_finLalgType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_finAlgType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">ljoin_finUnitRingType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">fljoin_finUnitRingType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">njoin_finUnitRingType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">fnjoin_finUnitRingType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">ajoin_finUnitRingType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">fajoin_finUnitRingType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">ujoin_finLmodType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">ujoin_finLalgType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">ujoin_finAlgType</span>.<br/>
+<span class="id" title="keyword">Notation</span> <a name="FinRing.UnitAlgebra.Exports.finUnitAlgType"><span class="id" title="abbreviation">finUnitAlgType</span></a> <span class="id" title="var">R</span> := (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.type"><span class="id" title="record">type</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#Phant"><span class="id" title="constructor">Phant</span></a> <span class="id" title="var">R</span>)).<br/>
+<span class="id" title="keyword">Notation</span> <a name="9af0def31728327fea663946c68b8952"><span class="id" title="notation">&quot;</span></a>[ 'finUnitAlgType' R 'of' T ]" := (<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.do_pack"><span class="id" title="abbreviation">do_pack</span></a> (@<a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.pack"><span class="id" title="definition">pack</span></a> <span class="id" title="var">_</span> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#Phant"><span class="id" title="constructor">Phant</span></a> <span class="id" title="var">R</span>)) <span class="id" title="var">T</span>) <br/>
+&nbsp;&nbsp;(<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 0, <span class="id" title="var">format</span> "[ 'finUnitAlgType' R 'of' T ]") : <span class="id" title="var">form_scope</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">baseFinGroupType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">finGroupType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_baseFinGroupType</span>.<br/>
+<span class="id" title="keyword">Canonical</span> <span class="id" title="var">join_finGroupType</span>.<br/>
+<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra.Exports"><span class="id" title="module">Exports</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.UnitAlgebra"><span class="id" title="module">UnitAlgebra</span></a>.<br/>
+<span class="id" title="keyword">Import</span> <span class="id" title="var">UnitAlgebra.Exports</span>.<br/>
+
+<br/>
+<span class="id" title="keyword">Module</span> <a name="FinRing.Theory"><span class="id" title="module">Theory</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Theory.zmod1gE"><span class="id" title="definition">zmod1gE</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.zmod1gE"><span class="id" title="lemma">zmod1gE</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Theory.zmodVgE"><span class="id" title="definition">zmodVgE</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.zmodVgE"><span class="id" title="lemma">zmodVgE</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Theory.zmodMgE"><span class="id" title="definition">zmodMgE</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.zmodMgE"><span class="id" title="lemma">zmodMgE</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Theory.zmodXgE"><span class="id" title="definition">zmodXgE</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.zmodXgE"><span class="id" title="lemma">zmodXgE</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Theory.zmod_mulgC"><span class="id" title="definition">zmod_mulgC</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.zmod_mulgC"><span class="id" title="lemma">zmod_mulgC</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Theory.zmod_abelian"><span class="id" title="definition">zmod_abelian</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.zmod_abelian"><span class="id" title="lemma">zmod_abelian</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Theory.val_unit1"><span class="id" title="definition">val_unit1</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.val_unit1"><span class="id" title="lemma">val_unit1</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Theory.val_unitM"><span class="id" title="definition">val_unitM</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.val_unitM"><span class="id" title="lemma">val_unitM</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Theory.val_unitX"><span class="id" title="definition">val_unitX</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.val_unitX"><span class="id" title="lemma">val_unitX</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Theory.val_unitV"><span class="id" title="definition">val_unitV</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.val_unitV"><span class="id" title="lemma">val_unitV</span></a>.<br/>
+<span class="id" title="keyword">Definition</span> <a name="FinRing.Theory.unit_actE"><span class="id" title="definition">unit_actE</span></a> := <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.unit_actE"><span class="id" title="lemma">unit_actE</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing.Theory"><span class="id" title="module">Theory</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">End</span> <a class="idref" href="mathcomp.algebra.finalg.html#FinRing"><span class="id" title="module">FinRing</span></a>.<br/>
+
+<br/>
+<span class="id" title="keyword">Import</span> <span class="id" title="var">FinRing</span>.<br/>
+<span class="id" title="keyword">Export</span> <span class="id" title="var">Zmodule.Exports</span> <span class="id" title="var">Ring.Exports</span> <span class="id" title="var">ComRing.Exports</span>.<br/>
+<span class="id" title="keyword">Export</span> <span class="id" title="var">UnitRing.Exports</span> <span class="id" title="var">UnitsGroupExports</span> <span class="id" title="var">ComUnitRing.Exports</span>.<br/>
+<span class="id" title="keyword">Export</span> <span class="id" title="var">IntegralDomain.Exports</span> <span class="id" title="var">Field.Exports</span> <span class="id" title="var">DecField.Exports</span>.<br/>
+<span class="id" title="keyword">Export</span> <span class="id" title="var">Lmodule.Exports</span> <span class="id" title="var">Lalgebra.Exports</span> <span class="id" title="var">Algebra.Exports</span> <span class="id" title="var">UnitAlgebra.Exports</span>.<br/>
+
+<br/>
+<span class="id" title="keyword">Notation</span> <a name="f7c6b2be51cd10aae4ae8951352903f1"><span class="id" title="notation">&quot;</span></a>{ 'unit' R }" := (<a class="idref" href="mathcomp.algebra.finalg.html#unit_of"><span class="id" title="inductive">unit_of</span></a> (<a class="idref" href="http://coq.inria.fr/distrib/8.8.0/stdlib//Coq.ssr.ssreflect.html#Phant"><span class="id" title="constructor">Phant</span></a> <span class="id" title="var">R</span>))<br/>
+&nbsp;&nbsp;(<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 0, <span class="id" title="var">format</span> "{ 'unit' R }") : <span class="id" title="var">type_scope</span>.<br/>
+<span class="id" title="keyword">Notation</span> <a name="b506a0a692460a3e17c5b2e07efc194f"><span class="id" title="notation">&quot;</span></a>''U'" := (<a class="idref" href="mathcomp.algebra.finalg.html#unit_action"><span class="id" title="definition">unit_action</span></a> <span class="id" title="var">_</span>) (<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 8) : <span class="id" title="var">action_scope</span>.<br/>
+<span class="id" title="keyword">Notation</span> <a name="8a7754d5ad6a37245756db94c3e8e256"><span class="id" title="notation">&quot;</span></a>''U'" := (<a class="idref" href="mathcomp.algebra.finalg.html#unit_groupAction"><span class="id" title="definition">unit_groupAction</span></a> <span class="id" title="var">_</span>) (<span class="id" title="tactic">at</span> <span class="id" title="keyword">level</span> 8) : <span class="id" title="var">groupAction_scope</span>.<br/>
+
+<br/>
+</div>
+</div>
+
+<div id="footer">
+<hr/><a href="index.html">Index</a><hr/>This page has been generated by <a href="http://coq.inria.fr/">coqdoc</a>
+</div>
+
+</div>
+
+</body>
+</html> \ No newline at end of file