Skip to content

Commit 2bf39ab

Browse files
committed
Add cmmap and fmmap: evaluation functions for monomials
1 parent 2875739 commit 2bf39ab

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
@@ -1651,6 +1651,33 @@ End MSize.
16511651
Definition msizeN (I : choiceType) (G : zmodType) :=
16521652
@mmeasureN (cmonom I) G mdeg.
16531653

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

@@ -1779,3 +1806,19 @@ Lemma fm1_eq1 i : (U_(i) == 1)%M = false.
17791806
Proof. by rewrite -fdeg_eq0 fdegU. Qed.
17801807

17811808
End FmonomTheory.
1809+
1810+
Section FMMap.
1811+
1812+
Context (I : choiceType) (R : pzSemiRingType) (f : I -> R).
1813+
1814+
Definition fmmap (m : fmonom I) := \prod_(k <- m) f k.
1815+
1816+
Fact fmmap_is_mmorphism : mmorphism fmmap.
1817+
Proof.
1818+
split=> [|x y]; first by rewrite /fmmap [1%M]fmoneE/= big_nil.
1819+
by rewrite /fmmap [(x * y)%M]fmmulE/= big_cat/=.
1820+
Qed.
1821+
1822+
HB.instance Definition _ := isMultiplicative.Build _ _ fmmap fmmap_is_mmorphism.
1823+
1824+
End FMMap.

0 commit comments

Comments
 (0)