From 748d716efb2f2f75946c8386e441ce1789806a39 Mon Sep 17 00:00:00 2001 From: Enrico Tassi Date: Wed, 22 May 2019 13:43:08 +0200 Subject: htmldoc regenerated --- docs/htmldoc/mathcomp.character.vcharacter.html | 412 ++++++++++++------------ 1 file changed, 203 insertions(+), 209 deletions(-) (limited to 'docs/htmldoc/mathcomp.character.vcharacter.html') diff --git a/docs/htmldoc/mathcomp.character.vcharacter.html b/docs/htmldoc/mathcomp.character.vcharacter.html index 4b01b7a..d4710a2 100644 --- a/docs/htmldoc/mathcomp.character.vcharacter.html +++ b/docs/htmldoc/mathcomp.character.vcharacter.html @@ -21,14 +21,6 @@
(* (c) Copyright 2006-2016 Microsoft Corporation and Inria.                  
 Distributed under the terms of CeCILL-B.                                  *)

-Require Import mathcomp.ssreflect.ssreflect.
- -
-Set Implicit Arguments.
- -
-Import GroupScope GRing.Theory Num.Theory.
-Local Open Scope ring_scope.

@@ -62,20 +54,27 @@
+
+Set Implicit Arguments.
+ +
+Import GroupScope GRing.Theory Num.Theory.
+Local Open Scope ring_scope.
+
Section Basics.

-Variables (gT : finGroupType) (B : {set gT}) (S : seq 'CF(B)) (A : {set gT}).
+Variables (gT : finGroupType) (B : {set gT}) (S : seq 'CF(B)) (A : {set gT}).

-Definition Zchar : pred_class :=
-  [pred phi in 'CF(B, A) | dec_Cint_span (in_tuple S) phi].
-Fact Zchar_key : pred_key Zchar.
-Canonical Zchar_keyed := KeyedPred Zchar_key.
+Definition Zchar : {pred 'CF(B)} :=
+  [pred phi in 'CF(B, A) | dec_Cint_span (in_tuple S) phi].
+Fact Zchar_key : pred_key Zchar.
+Canonical Zchar_keyed := KeyedPred Zchar_key.

-Lemma cfun0_zchar : 0 \in Zchar.
+Lemma cfun0_zchar : 0 \in Zchar.

Fact Zchar_zmod : zmod_closed Zchar.
@@ -84,56 +83,56 @@ Canonical Zchar_zmodPred := ZmodPred Zchar_zmod.

-Lemma scale_zchar a phi : a \in Cint phi \in Zchar a *: phi \in Zchar.
+Lemma scale_zchar a phi : a \in Cint phi \in Zchar a *: phi \in Zchar.

End Basics.

-Notation "''Z[' S , A ]" := (Zchar S A)
+Notation "''Z[' S , A ]" := (Zchar S A)
  (at level 8, format "''Z[' S , A ]") : group_scope.
-Notation "''Z[' S ]" := 'Z[S, setT]
+Notation "''Z[' S ]" := 'Z[S, setT]
  (at level 8, format "''Z[' S ]") : group_scope.

Section Zchar.

-Variables (gT : finGroupType) (G : {group gT}).
-Implicit Types (A B : {set gT}) (S : seq 'CF(G)).
+Variables (gT : finGroupType) (G : {group gT}).
+Implicit Types (A B : {set gT}) (S : seq 'CF(G)).

Lemma zchar_split S A phi :
-  phi \in 'Z[S, A] = (phi \in 'Z[S]) && (phi \in 'CF(G, A)).
+  phi \in 'Z[S, A] = (phi \in 'Z[S]) && (phi \in 'CF(G, A)).

-Lemma zcharD1E phi S : (phi \in 'Z[S, G^#]) = (phi \in 'Z[S]) && (phi 1%g == 0).
+Lemma zcharD1E phi S : (phi \in 'Z[S, G^#]) = (phi \in 'Z[S]) && (phi 1%g == 0).

Lemma zcharD1 phi S A :
-  (phi \in 'Z[S, A^#]) = (phi \in 'Z[S, A]) && (phi 1%g == 0).
+  (phi \in 'Z[S, A^#]) = (phi \in 'Z[S, A]) && (phi 1%g == 0).

-Lemma zcharW S A : {subset 'Z[S, A] 'Z[S]}.
+Lemma zcharW S A : {subset 'Z[S, A] 'Z[S]}.

-Lemma zchar_on S A : {subset 'Z[S, A] 'CF(G, A)}.
+Lemma zchar_on S A : {subset 'Z[S, A] 'CF(G, A)}.

-Lemma zchar_onS A B S : A \subset B {subset 'Z[S, A] 'Z[S, B]}.
+Lemma zchar_onS A B S : A \subset B {subset 'Z[S, A] 'Z[S, B]}.

-Lemma zchar_onG S : 'Z[S, G] =i 'Z[S].
+Lemma zchar_onG S : 'Z[S, G] =i 'Z[S].

-Lemma irr_vchar_on A : {subset 'Z[irr G, A] 'CF(G, A)}.
+Lemma irr_vchar_on A : {subset 'Z[irr G, A] 'CF(G, A)}.

-Lemma support_zchar S A phi : phi \in 'Z[S, A] support phi \subset A.
+Lemma support_zchar S A phi : phi \in 'Z[S, A] support phi \subset A.

Lemma mem_zchar_on S A phi :
-  phi \in 'CF(G, A) phi \in S phi \in 'Z[S, A].
+  phi \in 'CF(G, A) phi \in S phi \in 'Z[S, A].

@@ -142,17 +141,17 @@ A special lemma is needed because trivial fails to use the cfun_onT Hint.
-Lemma mem_zchar S phi : phi \in S phi \in 'Z[S].
+Lemma mem_zchar S phi : phi \in S phi \in 'Z[S].

Lemma zchar_nth_expansion S A phi :
-    phi \in 'Z[S, A]
-  {z | i, z i \in Cint & phi = \sum_(i < size S) z i *: S`_i}.
+    phi \in 'Z[S, A]
+  {z | i, z i \in Cint & phi = \sum_(i < size S) z i *: S`_i}.

-Lemma zchar_tuple_expansion n (S : n.-tuple 'CF(G)) A phi :
-    phi \in 'Z[S, A]
-  {z | i, z i \in Cint & phi = \sum_(i < n) z i *: S`_i}.
+Lemma zchar_tuple_expansion n (S : n.-tuple 'CF(G)) A phi :
+    phi \in 'Z[S, A]
+  {z | i, z i \in Cint & phi = \sum_(i < n) z i *: S`_i}.

@@ -161,36 +160,36 @@ A pure seq version with the extra hypothesis of S's unicity.
-Lemma zchar_expansion S A phi : uniq S
-    phi \in 'Z[S, A]
-  {z | xi, z xi \in Cint & phi = \sum_(xi <- S) z xi *: xi}.
+Lemma zchar_expansion S A phi : uniq S
+    phi \in 'Z[S, A]
+  {z | xi, z xi \in Cint & phi = \sum_(xi <- S) z xi *: xi}.

-Lemma zchar_span S A : {subset 'Z[S, A] <<S>>%VS}.
+Lemma zchar_span S A : {subset 'Z[S, A] <<S>>%VS}.

Lemma zchar_trans S1 S2 A B :
-  {subset S1 'Z[S2, B]} {subset 'Z[S1, A] 'Z[S2, A]}.
+  {subset S1 'Z[S2, B]} {subset 'Z[S1, A] 'Z[S2, A]}.

Lemma zchar_trans_on S1 S2 A :
-  {subset S1 'Z[S2, A]} {subset 'Z[S1] 'Z[S2, A]}.
+  {subset S1 'Z[S2, A]} {subset 'Z[S1] 'Z[S2, A]}.

Lemma zchar_sub_irr S A :
-  {subset S 'Z[irr G]} {subset 'Z[S, A] 'Z[irr G, A]}.
+  {subset S 'Z[irr G]} {subset 'Z[S, A] 'Z[irr G, A]}.

Lemma zchar_subset S1 S2 A :
-  {subset S1 S2} {subset 'Z[S1, A] 'Z[S2, A]}.
+  {subset S1 S2} {subset 'Z[S1, A] 'Z[S2, A]}.

Lemma zchar_subseq S1 S2 A :
-  subseq S1 S2 {subset 'Z[S1, A] 'Z[S2, A]}.
+  subseq S1 S2 {subset 'Z[S1, A] 'Z[S2, A]}.

-Lemma zchar_filter S A (p : pred 'CF(G)) :
-  {subset 'Z[filter p S, A] 'Z[S, A]}.
+Lemma zchar_filter S A (p : pred 'CF(G)) :
+  {subset 'Z[filter p S, A] 'Z[S, A]}.

End Zchar.
@@ -199,45 +198,45 @@ Section VChar.

-Variables (gT : finGroupType) (G : {group gT}).
-Implicit Types (A B : {set gT}) (phi chi : 'CF(G)) (S : seq 'CF(G)).
+Variables (gT : finGroupType) (G : {group gT}).
+Implicit Types (A B : {set gT}) (phi chi : 'CF(G)) (S : seq 'CF(G)).

-Lemma char_vchar chi : chi \is a character chi \in 'Z[irr G].
+Lemma char_vchar chi : chi \is a character chi \in 'Z[irr G].

-Lemma irr_vchar i : 'chi[G]_i \in 'Z[irr G].
+Lemma irr_vchar i : 'chi[G]_i \in 'Z[irr G].

-Lemma cfun1_vchar : 1 \in 'Z[irr G].
+Lemma cfun1_vchar : 1 \in 'Z[irr G].

Lemma vcharP phi :
-  reflect (exists2 chi1, chi1 \is a character
-            & exists2 chi2, chi2 \is a character & phi = chi1 - chi2)
-          (phi \in 'Z[irr G]).
+  reflect (exists2 chi1, chi1 \is a character
+            & exists2 chi2, chi2 \is a character & phi = chi1 - chi2)
+          (phi \in 'Z[irr G]).

-Lemma Aint_vchar phi x : phi \in 'Z[irr G] phi x \in Aint.
+Lemma Aint_vchar phi x : phi \in 'Z[irr G] phi x \in Aint.

-Lemma Cint_vchar1 phi : phi \in 'Z[irr G] phi 1%g \in Cint.
+Lemma Cint_vchar1 phi : phi \in 'Z[irr G] phi 1%g \in Cint.

-Lemma Cint_cfdot_vchar_irr i phi : phi \in 'Z[irr G] '[phi, 'chi_i] \in Cint.
+Lemma Cint_cfdot_vchar_irr i phi : phi \in 'Z[irr G] '[phi, 'chi_i] \in Cint.

Lemma cfdot_vchar_r phi psi :
-  psi \in 'Z[irr G] '[phi, psi] = \sum_i '[phi, 'chi_i] × '[psi, 'chi_i].
+  psi \in 'Z[irr G] '[phi, psi] = \sum_i '[phi, 'chi_i] × '[psi, 'chi_i].

-Lemma Cint_cfdot_vchar : {in 'Z[irr G] &, phi psi, '[phi, psi] \in Cint}.
+Lemma Cint_cfdot_vchar : {in 'Z[irr G] &, phi psi, '[phi, psi] \in Cint}.

-Lemma Cnat_cfnorm_vchar : {in 'Z[irr G], phi, '[phi] \in Cnat}.
+Lemma Cnat_cfnorm_vchar : {in 'Z[irr G], phi, '[phi] \in Cnat}.

-Fact vchar_mulr_closed : mulr_closed 'Z[irr G].
+Fact vchar_mulr_closed : mulr_closed 'Z[irr G].
Canonical vchar_mulrPred := MulrPred vchar_mulr_closed.
Canonical vchar_smulrPred := SmulrPred vchar_mulr_closed.
Canonical vchar_semiringPred := SemiringPred vchar_mulr_closed.
@@ -245,114 +244,114 @@
Lemma mul_vchar A :
-  {in 'Z[irr G, A] &, phi psi, phi × psi \in 'Z[irr G, A]}.
+  {in 'Z[irr G, A] &, phi psi, phi × psi \in 'Z[irr G, A]}.

Section CfdotPairwiseOrthogonal.

-Variables (M : {group gT}) (S : seq 'CF(G)) (nu : 'CF(G) 'CF(M)).
-Hypotheses (Inu : {in 'Z[S] &, isometry nu}) (oSS : pairwise_orthogonal S).
+Variables (M : {group gT}) (S : seq 'CF(G)) (nu : 'CF(G) 'CF(M)).
+Hypotheses (Inu : {in 'Z[S] &, isometry nu}) (oSS : pairwise_orthogonal S).

Let freeS := orthogonal_free oSS.
Let uniqS : uniq S := free_uniq freeS.
-Let Z_S : {subset S 'Z[S]}.
-Let notS0 : 0 \notin S.
-Let dotSS := proj2 (pairwise_orthogonalP oSS).
+Let Z_S : {subset S 'Z[S]}.
+Let notS0 : 0 \notin S.
+Let dotSS := proj2 (pairwise_orthogonalP oSS).

Lemma map_pairwise_orthogonal : pairwise_orthogonal (map nu S).

Lemma cfproj_sum_orthogonal P z phi :
-    phi \in S
-  '[\sum_(xi <- S | P xi) z xi *: nu xi, nu phi]
-    = if P phi then z phi × '[phi] else 0.
+    phi \in S
+  '[\sum_(xi <- S | P xi) z xi *: nu xi, nu phi]
+    = if P phi then z phi × '[phi] else 0.

Lemma cfdot_sum_orthogonal z1 z2 :
-  '[\sum_(xi <- S) z1 xi *: nu xi, \sum_(xi <- S) z2 xi *: nu xi]
-    = \sum_(xi <- S) z1 xi × (z2 xi)^* × '[xi].
+  '[\sum_(xi <- S) z1 xi *: nu xi, \sum_(xi <- S) z2 xi *: nu xi]
+    = \sum_(xi <- S) z1 xi × (z2 xi)^* × '[xi].

Lemma cfnorm_sum_orthogonal z :
-  '[\sum_(xi <- S) z xi *: nu xi] = \sum_(xi <- S) `|z xi| ^+ 2 × '[xi].
+  '[\sum_(xi <- S) z xi *: nu xi] = \sum_(xi <- S) `|z xi| ^+ 2 × '[xi].

-Lemma cfnorm_orthogonal : '[\sum_(xi <- S) nu xi] = \sum_(xi <- S) '[xi].
+Lemma cfnorm_orthogonal : '[\sum_(xi <- S) nu xi] = \sum_(xi <- S) '[xi].

End CfdotPairwiseOrthogonal.

Lemma orthogonal_span S phi :
-    pairwise_orthogonal S phi \in <<S>>%VS
-  {z | z = fun xi'[phi, xi] / '[xi] & phi = \sum_(xi <- S) z xi *: xi}.
+    pairwise_orthogonal S phi \in <<S>>%VS
+  {z | z = fun xi'[phi, xi] / '[xi] & phi = \sum_(xi <- S) z xi *: xi}.

Section CfDotOrthonormal.

-Variables (M : {group gT}) (S : seq 'CF(G)) (nu : 'CF(G) 'CF(M)).
-Hypotheses (Inu : {in 'Z[S] &, isometry nu}) (onS : orthonormal S).
+Variables (M : {group gT}) (S : seq 'CF(G)) (nu : 'CF(G) 'CF(M)).
+Hypotheses (Inu : {in 'Z[S] &, isometry nu}) (onS : orthonormal S).
Let oSS := orthonormal_orthogonal onS.
Let freeS := orthogonal_free oSS.
-Let nS1 : {in S, phi, '[phi] = 1}.
+Let nS1 : {in S, phi, '[phi] = 1}.

Lemma map_orthonormal : orthonormal (map nu S).

Lemma cfproj_sum_orthonormal z phi :
-  phi \in S '[\sum_(xi <- S) z xi *: nu xi, nu phi] = z phi.
+  phi \in S '[\sum_(xi <- S) z xi *: nu xi, nu phi] = z phi.

Lemma cfdot_sum_orthonormal z1 z2 :
-  '[\sum_(xi <- S) z1 xi *: xi, \sum_(xi <- S) z2 xi *: xi]
-     = \sum_(xi <- S) z1 xi × (z2 xi)^*.
+  '[\sum_(xi <- S) z1 xi *: xi, \sum_(xi <- S) z2 xi *: xi]
+     = \sum_(xi <- S) z1 xi × (z2 xi)^*.

Lemma cfnorm_sum_orthonormal z :
-  '[\sum_(xi <- S) z xi *: nu xi] = \sum_(xi <- S) `|z xi| ^+ 2.
+  '[\sum_(xi <- S) z xi *: nu xi] = \sum_(xi <- S) `|z xi| ^+ 2.

-Lemma cfnorm_map_orthonormal : '[\sum_(xi <- S) nu xi] = (size S)%:R.
+Lemma cfnorm_map_orthonormal : '[\sum_(xi <- S) nu xi] = (size S)%:R.

Lemma orthonormal_span phi :
-    phi \in <<S>>%VS
-  {z | z = fun xi'[phi, xi] & phi = \sum_(xi <- S) z xi *: xi}.
+    phi \in <<S>>%VS
+  {z | z = fun xi'[phi, xi] & phi = \sum_(xi <- S) z xi *: xi}.

End CfDotOrthonormal.

Lemma cfnorm_orthonormal S :
-  orthonormal S '[\sum_(xi <- S) xi] = (size S)%:R.
+  orthonormal S '[\sum_(xi <- S) xi] = (size S)%:R.

Lemma vchar_orthonormalP S :
-    {subset S 'Z[irr G]}
-  reflect ( I : {set Iirr G}, b : Iirr G bool,
-           perm_eq S [seq (-1) ^+ b i *: 'chi_i | i in I])
+    {subset S 'Z[irr G]}
+  reflect ( I : {set Iirr G}, b : Iirr G bool,
+           perm_eq S [seq (-1) ^+ b i *: 'chi_i | i in I])
          (orthonormal S).

Lemma vchar_norm1P phi :
-    phi \in 'Z[irr G] '[phi] = 1
-   b : bool, i : Iirr G, phi = (-1) ^+ b *: 'chi_i.
+    phi \in 'Z[irr G] '[phi] = 1
+   b : bool, i : Iirr G, phi = (-1) ^+ b *: 'chi_i.

Lemma zchar_small_norm phi n :
-    phi \in 'Z[irr G] '[phi] = n%:R (n < 4)%N
-  {S : n.-tuple 'CF(G) |
-    [/\ orthonormal S, {subset S 'Z[irr G]} & phi = \sum_(xi <- S) xi]}.
+    phi \in 'Z[irr G] '[phi] = n%:R (n < 4)%N
+  {S : n.-tuple 'CF(G) |
+    [/\ orthonormal S, {subset S 'Z[irr G]} & phi = \sum_(xi <- S) xi]}.

Lemma vchar_norm2 phi :
-    phi \in 'Z[irr G, G^#] '[phi] = 2%:R
-   i, exists2 j, j != i & phi = 'chi_i - 'chi_j.
+    phi \in 'Z[irr G, G^#] '[phi] = 2%:R
+   i, exists2 j, j != i & phi = 'chi_i - 'chi_j.

End VChar.
@@ -361,28 +360,28 @@ Section Isometries.

-Variables (gT : finGroupType) (L G : {group gT}) (S : seq 'CF(L)).
-Implicit Type nu : {additive 'CF(L) 'CF(G)}.
+Variables (gT : finGroupType) (L G : {group gT}) (S : seq 'CF(L)).
+Implicit Type nu : {additive 'CF(L) 'CF(G)}.

-Lemma Zisometry_of_cfnorm (tauS : seq 'CF(G)) :
-    pairwise_orthogonal S pairwise_orthogonal tauS
-    map cfnorm tauS = map cfnorm S {subset tauS 'Z[irr G]}
-  {tau : {linear 'CF(L) 'CF(G)} | map tau S = tauS
-       & {in 'Z[S], isometry tau, to 'Z[irr G]}}.
+Lemma Zisometry_of_cfnorm (tauS : seq 'CF(G)) :
+    pairwise_orthogonal S pairwise_orthogonal tauS
+    map cfnorm tauS = map cfnorm S {subset tauS 'Z[irr G]}
+  {tau : {linear 'CF(L) 'CF(G)} | map tau S = tauS
+       & {in 'Z[S], isometry tau, to 'Z[irr G]}}.

Lemma Zisometry_of_iso f :
-    free S {in S, isometry f, to 'Z[irr G]}
-  {tau : {linear 'CF(L) 'CF(G)} | {in S, tau =1 f}
-       & {in 'Z[S], isometry tau, to 'Z[irr G]}}.
+    free S {in S, isometry f, to 'Z[irr G]}
+  {tau : {linear 'CF(L) 'CF(G)} | {in S, tau =1 f}
+       & {in 'Z[S], isometry tau, to 'Z[irr G]}}.

Lemma Zisometry_inj A nu :
-  {in 'Z[S, A] &, isometry nu} {in 'Z[S, A] &, injective nu}.
+  {in 'Z[S, A] &, isometry nu} {in 'Z[S, A] &, injective nu}.

-Lemma isometry_in_zchar nu : {in S &, isometry nu} {in 'Z[S] &, isometry nu}.
+Lemma isometry_in_zchar nu : {in S &, isometry nu} {in 'Z[S] &, isometry nu}.

End Isometries.
@@ -391,30 +390,30 @@ Section AutVchar.

-Variables (u : {rmorphism algC algC}) (gT : finGroupType) (G : {group gT}).
-Implicit Type (S : seq 'CF(G)) (phi chi : 'CF(G)).
+Variables (u : {rmorphism algC algC}) (gT : finGroupType) (G : {group gT}).
+Implicit Type (S : seq 'CF(G)) (phi chi : 'CF(G)).

Lemma cfAut_zchar S A psi :
-  cfAut_closed u S psi \in 'Z[S, A] psi^u \in 'Z[S, A].
+  cfAut_closed u S psi \in 'Z[S, A] psi^u \in 'Z[S, A].

-Lemma cfAut_vchar A psi : psi \in 'Z[irr G, A] psi^u \in 'Z[irr G, A].
+Lemma cfAut_vchar A psi : psi \in 'Z[irr G, A] psi^u \in 'Z[irr G, A].

Lemma sub_aut_zchar S A psi :
-   {subset S 'Z[irr G]} psi \in 'Z[S, A] psi^u \in 'Z[S, A]
-  psi - psi^u \in 'Z[S, A^#].
+   {subset S 'Z[irr G]} psi \in 'Z[S, A] psi^u \in 'Z[S, A]
+  psi - psi^u \in 'Z[S, A^#].

-Lemma conjC_vcharAut chi x : chi \in 'Z[irr G] (u (chi x))^* = u (chi x)^*.
+Lemma conjC_vcharAut chi x : chi \in 'Z[irr G] (u (chi x))^* = u (chi x)^*.

Lemma cfdot_aut_vchar phi chi :
-  chi \in 'Z[irr G] '[phi^u , chi^u] = u '[phi, chi].
+  chi \in 'Z[irr G] '[phi^u , chi^u] = u '[phi, chi].

-Lemma vchar_aut A chi : (chi^u \in 'Z[irr G, A]) = (chi \in 'Z[irr G, A]).
+Lemma vchar_aut A chi : (chi^u \in 'Z[irr G, A]) = (chi \in 'Z[irr G, A]).

End AutVchar.
@@ -426,57 +425,57 @@ Section MoreVchar.

-Variables (gT : finGroupType) (G H : {group gT}).
+Variables (gT : finGroupType) (G H : {group gT}).

-Lemma cfRes_vchar phi : phi \in 'Z[irr G] 'Res[H] phi \in 'Z[irr H].
+Lemma cfRes_vchar phi : phi \in 'Z[irr G] 'Res[H] phi \in 'Z[irr H].

Lemma cfRes_vchar_on A phi :
-  H \subset G phi \in 'Z[irr G, A] 'Res[H] phi \in 'Z[irr H, A].
+  H \subset G phi \in 'Z[irr G, A] 'Res[H] phi \in 'Z[irr H, A].

-Lemma cfInd_vchar phi : phi \in 'Z[irr H] 'Ind[G] phi \in 'Z[irr G].
+Lemma cfInd_vchar phi : phi \in 'Z[irr H] 'Ind[G] phi \in 'Z[irr G].

Lemma sub_conjC_vchar A phi :
-  phi \in 'Z[irr G, A] phi - (phi^*)%CF \in 'Z[irr G, A^#].
+  phi \in 'Z[irr G, A] phi - (phi^*)%CF \in 'Z[irr G, A^#].

Lemma Frobenius_kernel_exists :
-  [Frobenius G with complement H] {K : {group gT} | [Frobenius G = K ><| H]}.
+  [Frobenius G with complement H] {K : {group gT} | [Frobenius G = K ><| H]}.

End MoreVchar.

-Definition dirr (gT : finGroupType) (B : {set gT}) : pred_class :=
-  [pred f : 'CF(B) | (f \in irr B) || (- f \in irr B)].
+Definition dirr (gT : finGroupType) (B : {set gT}) : {pred 'CF(B)} :=
+  [pred f | (f \in irr B) || (- f \in irr B)].

Section Norm1vchar.

-Variables (gT : finGroupType) (G : {group gT}).
+Variables (gT : finGroupType) (G : {group gT}).

-Fact dirr_key : pred_key (dirr G).
-Canonical dirr_keyed := KeyedPred dirr_key.
+Fact dirr_key : pred_key (dirr G).
+Canonical dirr_keyed := KeyedPred dirr_key.

Fact dirr_oppr_closed : oppr_closed (dirr G).
Canonical dirr_opprPred := OpprPred dirr_oppr_closed.

-Lemma dirr_opp v : (- v \in dirr G) = (v \in dirr G).
-Lemma dirr_sign n v : ((-1)^+ n *: v \in dirr G) = (v \in dirr G).
+Lemma dirr_opp v : (- v \in dirr G) = (v \in dirr G).
+Lemma dirr_sign n v : ((-1)^+ n *: v \in dirr G) = (v \in dirr G).

-Lemma irr_dirr i : 'chi_i \in dirr G.
+Lemma irr_dirr i : 'chi_i \in dirr G.

Lemma dirrP f :
-  reflect ( b : bool, i, f = (-1) ^+ b *: 'chi_i) (f \in dirr G).
+  reflect ( b : bool, i, f = (-1) ^+ b *: 'chi_i) (f \in dirr G).

@@ -485,166 +484,161 @@ This should perhaps be the definition of dirr.
-Lemma dirrE phi : phi \in dirr G = (phi \in 'Z[irr G]) && ('[phi] == 1).
+Lemma dirrE phi : phi \in dirr G = (phi \in 'Z[irr G]) && ('[phi] == 1).

-Lemma cfdot_dirr f g : f \in dirr G g \in dirr G
-  '[f, g] = (if f == - g then -1 else (f == g)%:R).
+Lemma cfdot_dirr f g : f \in dirr G g \in dirr G
+  '[f, g] = (if f == - g then -1 else (f == g)%:R).

-Lemma dirr_norm1 phi : phi \in 'Z[irr G] '[phi] = 1 phi \in dirr G.
+Lemma dirr_norm1 phi : phi \in 'Z[irr G] '[phi] = 1 phi \in dirr G.

-Lemma dirr_aut u phi : (cfAut u phi \in dirr G) = (phi \in dirr G).
+Lemma dirr_aut u phi : (cfAut u phi \in dirr G) = (phi \in dirr G).

-Definition dIirr (B : {set gT}) := (bool × (Iirr B))%type.
+Definition dIirr (B : {set gT}) := (bool × (Iirr B))%type.

-Definition dirr1 (B : {set gT}) : dIirr B := (false, 0).
+Definition dirr1 (B : {set gT}) : dIirr B := (false, 0).

-Definition ndirr (B : {set gT}) (i : dIirr B) : dIirr B :=
-  (~~ i.1, i.2).
+Definition ndirr (B : {set gT}) (i : dIirr B) : dIirr B :=
+  (~~ i.1, i.2).

-Lemma ndirr_diff (i : dIirr G) : ndirr i != i.
+Lemma ndirr_diff (i : dIirr G) : ndirr i != i.

-Lemma ndirrK : involutive (@ndirr G).
+Lemma ndirrK : involutive (@ndirr G).

-Lemma ndirr_inj : injective (@ndirr G).
+Lemma ndirr_inj : injective (@ndirr G).

-Definition dchi (B : {set gT}) (i : dIirr B) : 'CF(B) :=
-  (-1)^+ i.1 *: 'chi_i.2.
+Definition dchi (B : {set gT}) (i : dIirr B) : 'CF(B) :=
+  (-1)^+ i.1 *: 'chi_i.2.

-Lemma dchi1 : dchi (dirr1 G) = 1.
+Lemma dchi1 : dchi (dirr1 G) = 1.

-Lemma dirr_dchi i : dchi i \in dirr G.
+Lemma dirr_dchi i : dchi i \in dirr G.

-Lemma dIrrP phi : reflect ( i, phi = dchi i) (phi \in dirr G).
+Lemma dIrrP phi : reflect ( i, phi = dchi i) (phi \in dirr G).

-Lemma dchi_ndirrE (i : dIirr G) : dchi (ndirr i) = - dchi i.
+Lemma dchi_ndirrE (i : dIirr G) : dchi (ndirr i) = - dchi i.

Lemma cfdot_dchi (i j : dIirr G) :
-  '[dchi i, dchi j] = (i == j)%:R - (i == ndirr j)%:R.
+  '[dchi i, dchi j] = (i == j)%:R - (i == ndirr j)%:R.

-Lemma dchi_vchar i : dchi i \in 'Z[irr G].
+Lemma dchi_vchar i : dchi i \in 'Z[irr G].

-Lemma cfnorm_dchi (i : dIirr G) : '[dchi i] = 1.
+Lemma cfnorm_dchi (i : dIirr G) : '[dchi i] = 1.

-Lemma dirr_inj : injective (@dchi G).
+Lemma dirr_inj : injective (@dchi G).

-Definition dirr_dIirr (B : {set gT}) J (f : J 'CF(B)) j : dIirr B :=
-  odflt (dirr1 B) [pick i | dchi i == f j].
+Definition dirr_dIirr (B : {set gT}) J (f : J 'CF(B)) j : dIirr B :=
+  odflt (dirr1 B) [pick i | dchi i == f j].

-Lemma dirr_dIirrPE J (f : J 'CF(G)) (P : pred J) :
-    ( j, P j f j \in dirr G)
-   j, P j dchi (dirr_dIirr f j) = f j.
+Lemma dirr_dIirrPE J (f : J 'CF(G)) (P : pred J) :
+    ( j, P j f j \in dirr G)
+   j, P j dchi (dirr_dIirr f j) = f j.

-Lemma dirr_dIirrE J (f : J 'CF(G)) :
-  ( j, f j \in dirr G) j, dchi (dirr_dIirr f j) = f j.
+Lemma dirr_dIirrE J (f : J 'CF(G)) :
+  ( j, f j \in dirr G) j, dchi (dirr_dIirr f j) = f j.

-Definition dirr_constt (B : {set gT}) (phi: 'CF(B)) : {set (dIirr B)} :=
-  [set i | 0 < '[phi, dchi i]].
+Definition dirr_constt (B : {set gT}) (phi: 'CF(B)) : {set (dIirr B)} :=
+  [set i | 0 < '[phi, dchi i]].

-Lemma dirr_consttE (phi : 'CF(G)) (i : dIirr G) :
-  (i \in dirr_constt phi) = (0 < '[phi, dchi i]).
+Lemma dirr_consttE (phi : 'CF(G)) (i : dIirr G) :
+  (i \in dirr_constt phi) = (0 < '[phi, dchi i]).

-Lemma Cnat_dirr (phi : 'CF(G)) i :
-  phi \in 'Z[irr G] i \in dirr_constt phi '[phi, dchi i] \in Cnat.
+Lemma Cnat_dirr (phi : 'CF(G)) i :
+  phi \in 'Z[irr G] i \in dirr_constt phi '[phi, dchi i] \in Cnat.

-Lemma dirr_constt_oppr (i : dIirr G) (phi : 'CF(G)) :
-  (i \in dirr_constt (-phi)) = (ndirr i \in dirr_constt phi).
+Lemma dirr_constt_oppr (i : dIirr G) (phi : 'CF(G)) :
+  (i \in dirr_constt (-phi)) = (ndirr i \in dirr_constt phi).

-Lemma dirr_constt_oppI (phi: 'CF(G)) :
-   dirr_constt phi :&: dirr_constt (-phi) = set0.
+Lemma dirr_constt_oppI (phi: 'CF(G)) :
+   dirr_constt phi :&: dirr_constt (-phi) = set0.

-Lemma dirr_constt_oppl (phi: 'CF(G)) i :
-  i \in dirr_constt phi (ndirr i) \notin dirr_constt phi.
+Lemma dirr_constt_oppl (phi: 'CF(G)) i :
+  i \in dirr_constt phi (ndirr i) \notin dirr_constt phi.

-Definition to_dirr (B : {set gT}) (phi : 'CF(B)) (i : Iirr B) : dIirr B :=
-  ('[phi, 'chi_i] < 0, i).
+Definition to_dirr (B : {set gT}) (phi : 'CF(B)) (i : Iirr B) : dIirr B :=
+  ('[phi, 'chi_i] < 0, i).

-Definition of_irr (B : {set gT}) (i : dIirr B) : Iirr B := i.2.
+Definition of_irr (B : {set gT}) (i : dIirr B) : Iirr B := i.2.

-Lemma irr_constt_to_dirr (phi: 'CF(G)) i : phi \in 'Z[irr G]
-  (i \in irr_constt phi) = (to_dirr phi i \in dirr_constt phi).
+Lemma irr_constt_to_dirr (phi: 'CF(G)) i : phi \in 'Z[irr G]
+  (i \in irr_constt phi) = (to_dirr phi i \in dirr_constt phi).

-Lemma to_dirrK (phi: 'CF(G)) : cancel (to_dirr phi) (@of_irr G).
+Lemma to_dirrK (phi: 'CF(G)) : cancel (to_dirr phi) (@of_irr G).

-Lemma of_irrK (phi: 'CF(G)) :
-  {in dirr_constt phi, cancel (@of_irr G) (to_dirr phi)}.
+Lemma of_irrK (phi: 'CF(G)) :
+  {in dirr_constt phi, cancel (@of_irr G) (to_dirr phi)}.

-Lemma cfdot_todirrE (phi: 'CF(G)) i (phi_i := dchi (to_dirr phi i)) :
-  '[phi, phi_i] *: phi_i = '[phi, 'chi_i] *: 'chi_i.
+Lemma cfdot_todirrE (phi: 'CF(G)) i (phi_i := dchi (to_dirr phi i)) :
+  '[phi, phi_i] *: phi_i = '[phi, 'chi_i] *: 'chi_i.

-Lemma cfun_sum_dconstt (phi : 'CF(G)) :
-  phi \in 'Z[irr G]
-  phi = \sum_(i in dirr_constt phi) '[phi, dchi i] *: dchi i.
-
- -
- GG -- rewrite pattern fails in trunk - move=> PiZ; rewrite [X in X = _ ]cfun_sum_constt. -
-
+Lemma cfun_sum_dconstt (phi : 'CF(G)) :
+    phi \in 'Z[irr G]
+  phi = \sum_(i in dirr_constt phi) '[phi, dchi i] *: dchi i.

-Lemma cnorm_dconstt (phi : 'CF(G)) :
-  phi \in 'Z[irr G]
-  '[phi] = \sum_(i in dirr_constt phi) '[phi, dchi i] ^+ 2.
+Lemma cnorm_dconstt (phi : 'CF(G)) :
+  phi \in 'Z[irr G]
+  '[phi] = \sum_(i in dirr_constt phi) '[phi, dchi i] ^+ 2.

-Lemma dirr_small_norm (phi : 'CF(G)) n :
-  phi \in 'Z[irr G] '[phi] = n%:R (n < 4)%N
-  [/\ #|dirr_constt phi| = n, dirr_constt phi :&: dirr_constt (- phi) = set0 &
-      phi = \sum_(i in dirr_constt phi) dchi i].
+Lemma dirr_small_norm (phi : 'CF(G)) n :
+  phi \in 'Z[irr G] '[phi] = n%:R (n < 4)%N
+  [/\ #|dirr_constt phi| = n, dirr_constt phi :&: dirr_constt (- phi) = set0 &
+      phi = \sum_(i in dirr_constt phi) dchi i].

-Lemma cfdot_sum_dchi (phi1 phi2 : 'CF(G)) :
-  '[\sum_(i in dirr_constt phi1) dchi i,
-    \sum_(i in dirr_constt phi2) dchi i] =
-  #|dirr_constt phi1 :&: dirr_constt phi2|%:R -
-    #|dirr_constt phi1 :&: dirr_constt (- phi2)|%:R.
+Lemma cfdot_sum_dchi (phi1 phi2 : 'CF(G)) :
+  '[\sum_(i in dirr_constt phi1) dchi i,
+    \sum_(i in dirr_constt phi2) dchi i] =
+  #|dirr_constt phi1 :&: dirr_constt phi2|%:R -
+    #|dirr_constt phi1 :&: dirr_constt (- phi2)|%:R.

Lemma cfdot_dirr_eq1 :
-  {in dirr G &, phi psi, ('[phi, psi] == 1) = (phi == psi)}.
+  {in dirr G &, phi psi, ('[phi, psi] == 1) = (phi == psi)}.

Lemma cfdot_add_dirr_eq1 :
-  {in dirr G & &, phi1 phi2 psi,
-    '[phi1 + phi2, psi] = 1 psi = phi1 psi = phi2}.
+  {in dirr G & &, phi1 phi2 psi,
+    '[phi1 + phi2, psi] = 1 psi = phi1 psi = phi2}.

End Norm1vchar.
+ +
-- cgit v1.2.3