|
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