aboutsummaryrefslogtreecommitdiff
path: root/mathcomp
diff options
context:
space:
mode:
authorCyril Cohen2020-04-10 11:45:05 +0200
committerCyril Cohen2020-09-27 15:09:15 +0200
commit4241f07301e8d84186ae2c80d5c32118a90f6847 (patch)
tree2d0ee7af9c7ef40c67e57b243dc1f84715635a2b /mathcomp
parent6d8f919bbc6a103378005d282fb6018bb63c5026 (diff)
Putting ord1 in fintype
ord1 is in zmodp, but it does not really require the zmodType structure of 'I_n to be stated and proven if we state it with ord0. We still keep the variant in zmodp with 0 instead of ord0 (for readability purposes).
Diffstat (limited to 'mathcomp')
-rw-r--r--mathcomp/algebra/zmodp.v4
-rw-r--r--mathcomp/fingroup/perm.v4
-rw-r--r--mathcomp/ssreflect/fintype.v3
3 files changed, 7 insertions, 4 deletions
diff --git a/mathcomp/algebra/zmodp.v b/mathcomp/algebra/zmodp.v
index 4d92e26..015d971 100644
--- a/mathcomp/algebra/zmodp.v
+++ b/mathcomp/algebra/zmodp.v
@@ -181,8 +181,10 @@ Arguments Zp1 {p'}.
Arguments inZp {p'} i.
Arguments valZpK {p'} x.
+(* We redefine fintype.ord1 to specialize it with 0 instead of ord0 *)
+(* since 'I_n is now canonically a zmodType *)
Lemma ord1 : all_equal_to (0 : 'I_1).
-Proof. by case=> [[] // ?]; apply: val_inj. Qed.
+Proof. exact: ord1. Qed.
Lemma lshift0 m n : lshift m (0 : 'I_n.+1) = (0 : 'I_(n + m).+1).
Proof. exact: val_inj. Qed.
diff --git a/mathcomp/fingroup/perm.v b/mathcomp/fingroup/perm.v
index 0c02f3b..d0ba321 100644
--- a/mathcomp/fingroup/perm.v
+++ b/mathcomp/fingroup/perm.v
@@ -638,9 +638,7 @@ Lemma permS0 : all_equal_to (1 : 'S_0).
Proof. by move=> g; apply/permP; case. Qed.
Lemma permS1 : all_equal_to (1 : 'S_1).
-Proof.
-by move=> g; apply/permP => i; apply: val_inj; do ![case: (X in val X); case].
-Qed.
+Proof. by move=> g; apply/permP => i; rewrite !ord1. Qed.
Section CastSn.
diff --git a/mathcomp/ssreflect/fintype.v b/mathcomp/ssreflect/fintype.v
index 3472a1d..f4f34a4 100644
--- a/mathcomp/ssreflect/fintype.v
+++ b/mathcomp/ssreflect/fintype.v
@@ -2220,6 +2220,9 @@ Arguments sub_ord {n'}.
Arguments sub_ordK {n'}.
Arguments inord_val {n'}.
+Lemma ord1 : all_equal_to (ord0 : 'I_1).
+Proof. by case=> [[] // ?]; apply: val_inj. Qed.
+
(* Product of two fintypes which is a fintype *)
Section ProdFinType.