Skip to content
This repository was archived by the owner on Jul 24, 2024. It is now read-only.

Commit aa2c6e2

Browse files
johoelzlrobertylewis
authored andcommitted
feat(data/mv_polynomial): more about renaming
1 parent 5b73f46 commit aa2c6e2

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed

src/data/mv_polynomial.lean

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -581,6 +581,50 @@ show rename g (eval₂ C (X ∘ f) p) = _,
581581
lemma rename_id (p : mv_polynomial β α) : rename id p = p :=
582582
eval₂_eta p
583583

584+
lemma rename_monomial (f : β → γ) (p : β →₀ ℕ) (a : α) :
585+
rename f (monomial p a) = monomial (p.map_domain f) a :=
586+
begin
587+
rw [rename, eval₂_monomial, monomial_eq, finsupp.prod_map_domain_index],
588+
{ exact assume n, pow_zero _ },
589+
{ exact assume n i₁ i₂, pow_add _ _ _ }
590+
end
591+
592+
lemma rename_eq (f : β → γ) (p : mv_polynomial β α) :
593+
rename f p = finsupp.map_domain (finsupp.map_domain f) p :=
594+
begin
595+
simp only [rename, eval₂, finsupp.map_domain],
596+
congr, ext s a : 2,
597+
rw [← monomial, monomial_eq, finsupp.prod_sum_index],
598+
congr, ext n i : 2,
599+
rw [finsupp.prod_single_index],
600+
exact pow_zero _,
601+
exact assume a, pow_zero _,
602+
exact assume a b c, pow_add _ _ _
603+
end
604+
605+
lemma injective_rename (f : β → γ) (hf : function.injective f) :
606+
function.injective (rename f : mv_polynomial β α → mv_polynomial γ α) :=
607+
have (rename f : mv_polynomial β α → mv_polynomial γ α) =
608+
finsupp.map_domain (finsupp.map_domain f) := funext (rename_eq f),
609+
begin
610+
rw this,
611+
exact finsupp.injective_map_domain (finsupp.injective_map_domain hf)
612+
end
613+
614+
lemma total_degree_rename_le (f : β → γ) (p : mv_polynomial β α) :
615+
(p.rename f).total_degree ≤ p.total_degree :=
616+
finset.sup_le $ assume b,
617+
begin
618+
assume h,
619+
rw rename_eq at h,
620+
have h' := finsupp.map_domain_support h,
621+
rcases finset.mem_image.1 h' with ⟨s, hs, rfl⟩,
622+
rw finsupp.sum_map_domain_index,
623+
exact le_trans (le_refl _) (finset.le_sup hs),
624+
exact assume _, rfl,
625+
exact assume _ _ _, rfl
626+
end
627+
584628
end rename
585629

586630
instance rename.is_ring_hom

0 commit comments

Comments
 (0)