Documentation

Lean.Meta.Tactic.Grind.Arith.CommRing.EqCnstr

Equations
  • One or more equations did not get rendered due to their size.
Instances For

    Returns some c, where c is an equation from the basis whose leading monomial divides m. Remark: if the current ring does not satisfy the property

    ∀ (k : Nat) (a : α), k ≠ 0 → OfNat.ofNat (α := α) k * a = 0 → a = 0
    

    then the leading coefficient of the equation must also divide k

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For

      Returns some c, where c is an equation from the basis whose leading monomial divides some monomial in p.

      Equations
      Instances For

        Simplifies d.p using c, and returns an extended polynomial derivation.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          Equations
          • One or more equations did not get rendered due to their size.
          Instances For

            Simplified d.p using the current basis, and returns the extended polynomial derivation.

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For

              Simplifies c₁ using c₂.

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For

                Simplifies c₁ using c₂.

                Equations
                Instances For

                  Simplifies c₁ using c₂ exhaustively.

                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For

                    Simplify the given equation constraint using the current basis.

                    Note: This function (and simplifyBasis) runs with checkCoeffDvd := true. It rewrites a monomial k'*m' using an equation with leading term k*m only if k ∣ k' (or the ring implements NoNatZeroDivisors). Rewriting without this restriction requires multiplying the equation by k/gcd k k' ≠ ±1 first, and replacing an equation with the result loses information: p = 0 cannot be recovered from (k/gcd k k') * p = 0 in an arbitrary commutative ring. The consequences of the skipped rewrites are not lost: a skipped rewrite at the leading monomial coincides with the S-polynomial computed by superposeWith, so it is derived non-destructively. The price is that the basis is not fully interreduced (e.g., 2*x = 0 and 3*x = 0 may coexist), and reduction is an incomplete ideal-membership test in rings without NoNatZeroDivisors (e.g., x = 0 is not derived from 2*x = 0 and 3*x = 0). The complete alternative is a strong Gröbner basis over Int (Kandri-Rody & Kapur): replace multiply-through rewriting with Euclidean remainder reduction on coefficients (k' = q*k + r, so the equation is never multiplied by a constant), and additionally superpose gcd-polynomials (Bézout combinations producing gcd k k' times the lcm of the leading monomials). We should consider this option in the future.

                    Note: If using withCheckCoeffDvd becomes too expensive when one does not have NoNatZeroDivisors, we will add a flag to perform the simplification anyway even if information is lost.

                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For

                      Returns true if c.p is the constant polynomial.

                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For

                        Simplifies and checks whether the resulting constraint is trivial (i.e., 0 = 0), or inconsistent (i.e., k = 0 where k % c != 0 for a comm-ring with characteristic c), and returns none. Otherwise, returns the simplified constraint.

                        Equations
                        Instances For
                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For
                            Equations
                            • One or more equations did not get rendered due to their size.
                            Instances For
                              Equations
                              • One or more equations did not get rendered due to their size.
                              Instances For

                                Tries to convert the leading monomial into a monic one.

                                It exploits the fact that given a polynomial with leading coefficient k, if the ring has a nonzero characteristic p and gcd k p = 1, then k has an inverse.

                                It also handles the easy case where k is -1.

                                Remark: if the ring implements the class NoNatZeroDivisors, then the coefficients are divided by the gcd of all coefficients.

                                Equations
                                • One or more equations did not get rendered due to their size.
                                Instances For

                                  Simplifies the basis using c. Every equation that c rewrites is removed from the basis and requeued in its rewritten form.

                                  See Note at EqCnstr.simplify for why checkCoeffDvd must be enabled here.

                                  Equations
                                  • One or more equations did not get rendered due to their size.
                                  Instances For
                                    Equations
                                    • One or more equations did not get rendered due to their size.
                                    Instances For
                                      Equations
                                      • One or more equations did not get rendered due to their size.
                                      Instances For
                                        Equations
                                        • One or more equations did not get rendered due to their size.
                                        Instances For

                                          Returns true if c.d.p is the constant polynomial.

                                          Equations
                                          • One or more equations did not get rendered due to their size.
                                          Instances For
                                            Equations
                                            • One or more equations did not get rendered due to their size.
                                            Instances For
                                              Equations
                                              • One or more equations did not get rendered due to their size.
                                              Instances For
                                                Equations
                                                • One or more equations did not get rendered due to their size.
                                                Instances For
                                                  Equations
                                                  • One or more equations did not get rendered due to their size.
                                                  Instances For
                                                    Equations
                                                    • One or more equations did not get rendered due to their size.
                                                    Instances For
                                                      Equations
                                                      • One or more equations did not get rendered due to their size.
                                                      Instances For
                                                        Equations
                                                        • One or more equations did not get rendered due to their size.
                                                        Instances For