Documentation

Groebner.MonomialOrderEmbedding

def RelHom.onFun {α : Type u_1} {β : Type u_2} (r : β → β → Prop) (f : α → β) :
Equations
Instances For
    @[simp]
    theorem RelHom.coe_onFun {α : Type u_1} {β : Type u_2} {r : β → β → Prop} (f : α → β) :
    ⇑(onFun r f) = f
    def MonomialOrder.ofInjective.Syn {σ : Type u_2} (m : MonomialOrder σ) {σ' : Type u_3} (f : σ' → σ) :
    Type u_3
    Equations
    Instances For
      @[instance_reducible]
      noncomputable instance MonomialOrder.ofInjective.acm' {σ' : Type u_1} {σ : Type u_2} (m : MonomialOrder σ) (f : σ' → σ) :
      Equations
      • One or more equations did not get rendered due to their size.
      noncomputable def MonomialOrder.ofInjective.toSyn' {σ : Type u_2} (m : MonomialOrder σ) {σ' : Type u_3} (f : σ' → σ) :
      (σ' →₀ ℕ) ≃+ Syn m f
      Equations
      Instances For
        noncomputable def MonomialOrder.ofInjective {σ : Type u_2} (m : MonomialOrder σ) {σ' : Type u_3} {f : σ' → σ} (hf : Function.Injective f) :
        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          structure MonomialOrder.Embedding {σ' : Type u_1} (m' : MonomialOrder σ') {σ : Type u_2} (m : MonomialOrder σ) extends σ' ↪ σ :
          Type (max u_1 u_2)

          An embedding from a monomial order m' : MonomialOrder σ' and m : MonomialOrder σ consists:

          1. a injective mapping from index σ' of m' to σ of m.
          2. this mapping "preserves" the order.
          Instances For
            @[instance_reducible]
            instance MonomialOrder.Embedding.instFunLike {σ' : Type u_1} {m' : MonomialOrder σ'} {σ : Type u_2} {m : MonomialOrder σ} :
            FunLike (m'.Embedding m) σ' σ
            Equations
            theorem MonomialOrder.Embedding.ext {σ' : Type u_1} {m' : MonomialOrder σ'} {σ : Type u_2} {m : MonomialOrder σ} {e₁ e₂ : m'.Embedding m} (h : ⇑e₁ = ⇑e₂) :
            e₁ = e₂
            theorem MonomialOrder.Embedding.ext_iff {σ' : Type u_1} {m' : MonomialOrder σ'} {σ : Type u_2} {m : MonomialOrder σ} {e₁ e₂ : m'.Embedding m} :
            e₁ = e₂ ↔ ⇑e₁ = ⇑e₂
            @[simp]
            theorem MonomialOrder.Embedding.coe_toEmbedding_eq_coe {σ' : Type u_1} {m' : MonomialOrder σ'} {σ : Type u_2} {m : MonomialOrder σ} (e : m'.Embedding m) :
            ⇑e.toEmbedding = ⇑e
            @[simp]
            theorem MonomialOrder.Embedding.toFun_eq_coe {σ' : Type u_1} {m' : MonomialOrder σ'} {σ : Type u_2} {m : MonomialOrder σ} (e : m'.Embedding m) :
            e.toFun = ⇑e
            theorem MonomialOrder.Embedding.monotone {σ' : Type u_1} {m' : MonomialOrder σ'} {σ : Type u_2} {m : MonomialOrder σ} (e : m'.Embedding m) :
            @[simp]
            theorem MonomialOrder.Embedding.coe_injective {σ' : Type u_1} {m' : MonomialOrder σ'} {σ : Type u_2} {m : MonomialOrder σ} (e : m'.Embedding m) :
            theorem MonomialOrder.Embedding.toStrictMono {σ' : Type u_1} {m' : MonomialOrder σ'} {σ : Type u_2} {m : MonomialOrder σ} (e : m'.Embedding m) :
            noncomputable def MonomialOrder.Embedding.toOrderEmbedding {σ' : Type u_1} {m' : MonomialOrder σ'} {σ : Type u_2} {m : MonomialOrder σ} (e : m'.Embedding m) :
            m'.syn ↪o m.syn
            Equations
            Instances For
              @[simp]
              theorem MonomialOrder.Embedding.le_iff_le {σ' : Type u_1} {m' : MonomialOrder σ'} {σ : Type u_2} {m : MonomialOrder σ} (e : m'.Embedding m) (a b : m'.syn) :
              m.toSyn (Finsupp.mapDomain (⇑e) (m'.toSyn.symm a)) ≤ m.toSyn (Finsupp.mapDomain (⇑e) (m'.toSyn.symm b)) ↔ a ≤ b
              @[simp]
              theorem MonomialOrder.Embedding.le_iff_le' {σ' : Type u_1} {m' : MonomialOrder σ'} {σ : Type u_2} {m : MonomialOrder σ} (e : m'.Embedding m) (a b : σ' →₀ ℕ) :
              m.toSyn (Finsupp.mapDomain (⇑e) a) ≤ m.toSyn (Finsupp.mapDomain (⇑e) b) ↔ m'.toSyn a ≤ m'.toSyn b
              @[simp]
              theorem MonomialOrder.Embedding.lt_iff_lt {σ' : Type u_1} {m' : MonomialOrder σ'} {σ : Type u_2} {m : MonomialOrder σ} (e : m'.Embedding m) (a b : m'.syn) :
              m.toSyn (Finsupp.mapDomain (⇑e) (m'.toSyn.symm a)) < m.toSyn (Finsupp.mapDomain (⇑e) (m'.toSyn.symm b)) ↔ a < b
              @[simp]
              theorem MonomialOrder.Embedding.lt_iff_lt' {σ' : Type u_1} {m' : MonomialOrder σ'} {σ : Type u_2} {m : MonomialOrder σ} (e : m'.Embedding m) (a b : σ' →₀ ℕ) :
              m.toSyn (Finsupp.mapDomain (⇑e) a) < m.toSyn (Finsupp.mapDomain (⇑e) b) ↔ m'.toSyn a < m'.toSyn b
              def MonomialOrder.Embedding.ofInjective {σ' : Type u_1} {σ : Type u_2} (m : MonomialOrder σ) {f : σ' → σ} (hf : Function.Injective f) :

              Given a monomial order m : MonomialOrder σ and a injective function f : σ' → σ, there exists an embedding ofInjective, from an m' : MonomialOrder σ' to m : MonomialOrder σ with mapping f.

              Equations
              Instances For
                theorem MonomialOrder.Embedding.coe_ofInjective {σ' : Type u_1} {σ : Type u_2} (m : MonomialOrder σ) {f : σ' → σ} (hf : Function.Injective f) :
                ⇑(ofInjective m hf) = f
                theorem MonomialOrder.Embedding.degree_rename {σ' : Type u_1} {m' : MonomialOrder σ'} {σ : Type u_2} {m : MonomialOrder σ} (e : m'.Embedding m) {R : Type u_3} [CommSemiring R] (p : MvPolynomial σ' R) :

                Renaming with an monomial ordering embedding preserves degree.

                @[simp]
                theorem MonomialOrder.Embedding.degree_eq_degree {σ' : Type u_1} {m' : MonomialOrder σ'} {σ : Type u_2} {m : MonomialOrder σ} (e : m'.Embedding m) {R : Type u_3} [CommSemiring R] (p q : MvPolynomial σ' R) :
                @[simp]
                theorem MonomialOrder.Embedding.degree_le_degree {σ' : Type u_1} {m' : MonomialOrder σ'} {σ : Type u_2} {m : MonomialOrder σ} (e : m'.Embedding m) {R : Type u_3} [CommSemiring R] (p q : MvPolynomial σ' R) :
                m.toSyn (m.degree ((MvPolynomial.rename ⇑e) p)) ≤ m.toSyn (m.degree ((MvPolynomial.rename ⇑e) q)) ↔ m'.toSyn (m'.degree p) ≤ m'.toSyn (m'.degree q)
                @[simp]
                theorem MonomialOrder.Embedding.degree_le_degree' {σ' : Type u_1} {m' : MonomialOrder σ'} {σ : Type u_2} {m : MonomialOrder σ} (e : m'.Embedding m) {R : Type u_3} [CommSemiring R] (p q : MvPolynomial σ' R) :
                @[simp]
                theorem MonomialOrder.Embedding.degree_lt_degree {σ' : Type u_1} {m' : MonomialOrder σ'} {σ : Type u_2} {m : MonomialOrder σ} (e : m'.Embedding m) {R : Type u_3} [CommSemiring R] (p q : MvPolynomial σ' R) :
                m.toSyn (m.degree ((MvPolynomial.rename ⇑e) p)) < m.toSyn (m.degree ((MvPolynomial.rename ⇑e) q)) ↔ m'.toSyn (m'.degree p) < m'.toSyn (m'.degree q)
                theorem MonomialOrder.Embedding.withBotDegree_rename {σ' : Type u_1} {m' : MonomialOrder σ'} {σ : Type u_2} {m : MonomialOrder σ} (e : m'.Embedding m) {R : Type u_3} [CommSemiring R] (p : MvPolynomial σ' R) :

                Renaming with an monomial ordering embedding preserves degree.

                @[simp]
                theorem MonomialOrder.Embedding.leadingCoeff_rename {σ' : Type u_1} {m' : MonomialOrder σ'} {σ : Type u_2} {m : MonomialOrder σ} (e : m'.Embedding m) {R : Type u_3} [CommSemiring R] (p : MvPolynomial σ' R) :
                @[simp]
                theorem MonomialOrder.Embedding.monic_rename {σ' : Type u_1} {m' : MonomialOrder σ'} {σ : Type u_2} {m : MonomialOrder σ} (e : m'.Embedding m) {R : Type u_3} [CommSemiring R] (p : MvPolynomial σ' R) :
                m.Monic ((MvPolynomial.rename ⇑e) p) = m'.Monic p
                theorem MonomialOrder.Embedding.leadingTerm_rename {σ' : Type u_1} {m' : MonomialOrder σ'} {σ : Type u_2} {m : MonomialOrder σ} (e : m'.Embedding m) {R : Type u_3} [CommSemiring R] (p : MvPolynomial σ' R) :
                theorem MonomialOrder.Embedding.sPolynomial_rename {σ' : Type u_1} {m' : MonomialOrder σ'} {σ : Type u_2} {m : MonomialOrder σ} (e : m'.Embedding m) {R : Type u_3} [CommRing R] (p q : MvPolynomial σ' R) :