Definition L := tag Fundamental_Theorem_of_Algebraics.Definition conjL : {rmorphism L -> L} :=
  s2val (tagged Fundamental_Theorem_of_Algebraics).Fact conjL_K : involutive conjL.Fact conjL_nt : ~ conjL =1 id.Definition LnumMixin := ComplexNumMixin conjL_K conjL_nt.Definition Lnum := NumDomainType L (sval LnumMixin).Notation pQtoL := (map_poly QtoL).Fact eq_root_is_equiv : equiv_class_of eq_root.Canonical eq_root_equiv := EquivRelPack eq_root_is_equiv.Definition type : Type := {eq_quot eq_root}%qT.Definition eqMixin : Equality.class_of type := EquivQuot.eqMixin _.Canonical eqType := EqType type eqMixin.Definition choiceMixin : Choice.mixin_of type := EquivQuot.choiceMixin _.Canonical choiceType := ChoiceType type choiceMixin.Definition countMixin : Countable.mixin_of type := CanCountMixin reprK.Canonical countType := CountType type countMixin.Definition CtoL (u : type) := rootQtoL (repr u).Fact CtoL_inj : injective CtoL.Fact CtoL_P u : integralOver QtoL (CtoL u).Fact LtoC_subproof z : integralOver QtoL z -> {u | CtoL u = z}.Definition LtoC z Az := sval (@LtoC_subproof z Az).Fact LtoC_K z Az : CtoL (@LtoC z Az) = z.Fact CtoL_K u : LtoC (CtoL_P u) = u.Definition zero := LtoC (integral0 _).Definition add u v := LtoC (integral_add (CtoL_P u) (CtoL_P v)).Definition opp u := LtoC (integral_opp (CtoL_P u)).Fact addA : associative add.Fact addC : commutative add.Fact add0 : left_id zero add.Fact addN : left_inverse zero opp add.Definition zmodMixin := ZmodMixin addA addC add0 addN.Canonical zmodType := ZmodType type zmodMixin.Fact CtoL_is_additive : additive CtoL.Canonical CtoL_additive := Additive CtoL_is_additive.Definition one := LtoC (integral1 _).Definition mul u v := LtoC (integral_mul (CtoL_P u) (CtoL_P v)).Definition inv u := LtoC (integral_inv (CtoL_P u)).Fact mulA : associative mul.Fact mulC : commutative mul.Fact mul1 : left_id one mul.Definition ringMixin := ComRingMixin mulA mulC mul1 mulD one_nz.Canonical ringType := RingType type ringMixin.Canonical comRingType := ComRingType type mulC.Fact CtoL_is_multiplicative : multiplicative CtoL.Canonical CtoL_rmorphism := AddRMorphism CtoL_is_multiplicative.Fact mulVf : GRing.Field.axiom inv.Fact inv0 : inv 0 = 0.Definition unitRingMixin := FieldUnitMixin mulVf inv0.Canonical unitRingType := UnitRingType type unitRingMixin.Definition fieldMixin := FieldMixin mulVf inv0.Definition idomainAxiom := FieldIdomainMixin fieldMixin.Canonical idomainType := IdomainType type idomainAxiom.Canonical fieldType := FieldType type fieldMixin.Fact closedFieldAxiom : GRing.ClosedField.axiom ringType.Definition decFieldMixin := closed_field_QEMixin closedFieldAxiom.Canonical decFieldType := DecFieldType type decFieldMixin.Canonical closedFieldType := ClosedFieldType type closedFieldAxiom.Fact conj_subproof u : integralOver QtoL (conjL (CtoL u)).Fact conj_is_rmorphism : rmorphism (fun u => LtoC (conj_subproof u)).Definition conj : {rmorphism type -> type} := RMorphism conj_is_rmorphism.

(* Specifications: *)
Lemma conjK : involutive conj.