Skip to content

Commit 06e97d9

Browse files
committed
Add cmmap and fmmap: evaluation functions for monomials
1 parent 21bdac3 commit 06e97d9

1 file changed

Lines changed: 43 additions & 0 deletions

File tree

src/monalg.v

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1658,6 +1658,33 @@ End MSize.
16581658
Definition msizeN (I : choiceType) (G : zmodType) :=
16591659
@mmeasureN (cmonom I) G mdeg.
16601660

1661+
Section CMMap.
1662+
1663+
Definition cmmap
1664+
{I : choiceType} {R : pzSemiRingType} (f : I -> R) (m : cmonom I) :=
1665+
\prod_(k <- finsupp m) f k ^+ m k.
1666+
1667+
Context (I : choiceType) (R : comPzSemiRingType) (f : I -> R).
1668+
1669+
Lemma cmmapw (d : {fset I}) (m : {cmonom I}) :
1670+
finsupp m `<=` d -> cmmap f m = \prod_(k <- d) f k ^+ m k.
1671+
Proof.
1672+
by move=> md; apply: big_fset_incl md _ => x xd; rewrite -cmE_eq0 => /eqP->.
1673+
Qed.
1674+
1675+
Fact cmmap_is_mmorphism : mmorphism (cmmap f).
1676+
Proof.
1677+
split=> [|x y]; first by rewrite /cmmap mdom1 big_seq_fset0.
1678+
rewrite [cmmap f x](cmmapw (fsubsetUl _ (finsupp y))).
1679+
rewrite [cmmap f y](cmmapw (fsubsetUr (finsupp x) _)).
1680+
by rewrite -big_split/= /cmmap mdomD; apply/eq_bigr => i _; rewrite cmM exprD.
1681+
Qed.
1682+
1683+
HB.instance Definition _ :=
1684+
isMultiplicative.Build _ _ (cmmap f) cmmap_is_mmorphism.
1685+
1686+
End CMMap.
1687+
16611688
(* -------------------------------------------------------------------- *)
16621689
Section FmonomDef.
16631690

@@ -1790,3 +1817,19 @@ Lemma fm1_eq1 i : (U_(i) == 1)%M = false.
17901817
Proof. by rewrite -fdeg_eq0 fdegU. Qed.
17911818

17921819
End FmonomTheory.
1820+
1821+
Section FMMap.
1822+
1823+
Context (I : choiceType) (R : pzSemiRingType) (f : I -> R).
1824+
1825+
Definition fmmap (m : fmonom I) := \prod_(k <- m) f k.
1826+
1827+
Fact fmmap_is_mmorphism : mmorphism fmmap.
1828+
Proof.
1829+
split=> [|x y]; first by rewrite /fmmap [1%M]fmoneE/= big_nil.
1830+
by rewrite /fmmap [(x * y)%M]fmmulE/= big_cat/=.
1831+
Qed.
1832+
1833+
HB.instance Definition _ := isMultiplicative.Build _ _ fmmap fmmap_is_mmorphism.
1834+
1835+
End FMMap.

0 commit comments

Comments
 (0)