|
16 | 16 | (* delimited by %MM *)
|
17 | 17 | (* [multinom E i | i < n] *)
|
18 | 18 | (* == the monomial in n variables whose i-th power is E(i) *)
|
19 |
| -(* mdeg m == the degree of the monomial m; i.e. *) |
20 |
| -(* mdeg m = \sum_(i < n) (m i) *) |
| 19 | +(* mdeg m == the degree of the monomial m; *) |
| 20 | +(* i.e. mdeg m = \sum_(i < n) (m i) *) |
21 | 21 | (* 'X_{1..n < k} == the finite type of monomials in n variables with *)
|
22 | 22 | (* degree bounded by k. *)
|
23 |
| -(* (m1 <= m2)%MM == the point-wise partial order over monomials, i.e. *) |
24 |
| -(* (m1 <= m2)%MM <=> forall i, m1 i <= m2 i *) |
| 23 | +(* (m1 <= m2)%MM == the point-wise partial order over monomials, *) |
| 24 | +(* i.e. (m1 <= m2)%MM <=> forall i, m1 i <= m2 i *) |
25 | 25 | (* (m1 <= m2)%O == the total cpo (equipped with a cpoType) over *)
|
26 | 26 | (* monomials. This is the degrevlex monomial ordering. *)
|
27 | 27 | (* 0, 'U_i, m1 + m2, == 'X_{1..n} is equipped with a semi-group structure, *)
|
28 | 28 | (* m1 - m2, m *+ n, ... all operations being point-wise. The substraction *)
|
29 |
| -(* is truncated when (m1 <= m2)%MM does not hold. *) |
30 |
| -(* mlcm m1 m2 == the monomial that is the least common multiple *) |
| 29 | +(* is truncated when (m2 <= m1)%MM does not hold. *) |
| 30 | +(* mlcm m1 m2 == the monomial that is the least common multiple *) |
31 | 31 | (* {mpoly R[n]} == the type of multivariate polynomials in n variables *)
|
32 | 32 | (* and with coefficients of type R represented as *)
|
33 | 33 | (* {free 'X_{1..n} / R}, i.e. as a formal sum over *)
|
|
52 | 52 | (* monomial of p for the degrevlex monimial ordering. *)
|
53 | 53 | (* mlead p defaults to 0%MM when p is 0. *)
|
54 | 54 | (* mlast p == the smallest non-zero monomial of p for the *)
|
55 |
| -(* degrevlex monimial ordering. *) |
| 55 | +(* degrevlex monimial ordering. *) |
56 | 56 | (* mlast p defaults to 0%MM when p is 0. *)
|
57 | 57 | (* mleadc p == the coefficient of the highest monomial in p; *)
|
58 | 58 | (* this is a notation for p@_(mlead p). *)
|
59 | 59 | (* p \is a mpolyOver S <=> the coefficients of p satisfy S; S should have a *)
|
60 | 60 | (* key that should be (at least) an addrPred. *)
|
61 | 61 | (* p.@[x] == the evaluation of a polynomial p at a point x, where *)
|
62 |
| -(* v is a n.-tuple R s.t. 'X_i evaluates to (tnth v i) *) |
63 |
| -(* p^`M() == formal derivative of p w.r.t the i-th variable *) |
64 |
| -(* p^`M(n, i) == formal n-derivative of p w.r.t the i-th variable *) |
| 62 | +(* x is a n.-tuple R s.t. 'X_i evaluates to (tnth x i) *) |
| 63 | +(* p^`M(i) == formal derivative of p w.r.t the i-th variable *) |
| 64 | +(* p^`M(i, n) == formal n-derivative of p w.r.t the i-th variable *) |
65 | 65 | (* p^`M[m] == formal parallel (m i)-derivative of p w.r.t the *)
|
66 | 66 | (* i-th variable, i ranging in {0..n.-1}. *)
|
67 | 67 | (* p \mPo lq == multivariate polynomial composition, where lq is a *)
|
@@ -4133,9 +4133,7 @@ apply/eqP; rewrite eq_sym eqEcard; apply/andP; split.
|
4133 | 4133 | apply/negP=> /imsetP [/=] x _ /eqP.
|
4134 | 4134 | by rewrite eqE /= eq_sym ltn_eqF.
|
4135 | 4135 | have := disjoint_S n k; rewrite -leq_card_setU=> /eqP->.
|
4136 |
| -rewrite !card_imset //= ?card_draws /=; |
4137 |
| - try exact/inj_swiden; try exact/inj_mDswiden. |
4138 |
| - (* remove the line above once requiring Coq >= 8.17 *) |
| 4136 | +rewrite !card_imset //= ?card_draws /=. |
4139 | 4137 | by rewrite !card_ord binS.
|
4140 | 4138 | Qed.
|
4141 | 4139 |
|
|
0 commit comments