Documentation

LeanPool.Koethe.MultiProjective

Common zeros on products of projective planes #

Scratch development, independent of Submission/Spec.lean. The multihomogeneity convention is coefficientwise, so the zero polynomial is homogeneous of every multidegree. No projective intersection theorem is assumed as an axiom.

@[reducible, inline]

The polynomial variables, grouped into triples.

Equations
Instances For

    The degree of an exponent vector in one block.

    Equations
    Instances For
      @[simp]

      All block degrees of an exponent vector are equal.

      Equations
      Instances For
        theorem KoetheMultiProjective.Balanced.add {N : } {d e : Vars N →₀ } (hd : Balanced d) (he : Balanced e) :
        Balanced (d + e)
        def KoetheMultiProjective.IsMultiHomogeneous {k : Type u_1} {N : } [CommSemiring k] (f : MvPolynomial (Vars N) k) (r : Fin N) :

        Coefficientwise multihomogeneity with a specified degree in each block.

        Equations
        Instances For

          Every nonzero monomial has the same degree r in every block.

          Equations
          Instances For

            Polynomials all of whose monomials have balanced block degrees. Different monomials may have different common degrees.

            Equations
            Instances For
              theorem KoetheMultiProjective.isMultiHomogeneous_monomial {k : Type u_1} {N : } [CommSemiring k] {d : Vars N →₀ } {r : Fin N} (hd : ∀ (b : Fin N), blockDegree d b = r b) (a : k) :
              theorem KoetheMultiProjective.IsMultiHomogeneous.smul {k : Type u_1} {N : } [CommSemiring k] {p : MvPolynomial (Vars N) k} {r : Fin N} (hp : IsMultiHomogeneous p r) (a : k) :
              theorem KoetheMultiProjective.IsMultiHomogeneous.mul {k : Type u_1} {N : } [CommSemiring k] {p q : MvPolynomial (Vars N) k} {r s : Fin N} (hp : IsMultiHomogeneous p r) (hq : IsMultiHomogeneous q s) :
              IsMultiHomogeneous (p * q) (r + s)
              theorem KoetheMultiProjective.IsMultiHomogeneous.pow {k : Type u_1} {N : } [CommSemiring k] {p : MvPolynomial (Vars N) k} {r : Fin N} (hp : IsMultiHomogeneous p r) (n : ) :
              IsMultiHomogeneous (p ^ n) fun (b : Fin N) => n * r b

              The diagonal (balanced-degree) monomial subalgebra.

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                noncomputable def KoetheMultiProjective.segreExponent {N : } (j : Fin NFin 3) :

                Exponent vector of a degree-one Segre coordinate.

                Equations
                Instances For
                  @[simp]
                  theorem KoetheMultiProjective.segreExponent_apply {N : } (j : Fin NFin 3) (b : Fin N) (c : Fin 3) :
                  (segreExponent j) (b, c) = if j b = c then 1 else 0
                  @[simp]
                  noncomputable def KoetheMultiProjective.segreMonomial {k : Type u_1} {N : } [CommSemiring k] (j : Fin NFin 3) :

                  A degree-one Segre coordinate, as a polynomial in the original triples.

                  Equations
                  Instances For
                    theorem KoetheMultiProjective.exists_segreExponent_le {N : } {d : Vars N →₀ } {r : } (hd : ∀ (b : Fin N), blockDegree d b = r + 1) :
                    ∃ (j : Fin NFin 3), segreExponent j d

                    A balanced monomial factors into degree-one Segre monomials. This is the finite-generation step, proved by induction on the common degree.

                    The balanced subalgebra is generated by the finitely many Segre coordinates.

                    Keep just the monomials whose block degrees are all equal.

                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For
                      theorem KoetheMultiProjective.balancedPart_mul {k : Type u_1} {N : } [CommSemiring k] {p : MvPolynomial (Vars N) k} (hp : p balancedAlgebra k N) (q : MvPolynomial (Vars N) k) :

                      The balanced-monomial projection is linear over the whole balanced subalgebra, not merely over the coefficient field.

                      The same projection with codomain restricted to the balanced algebra.

                      Equations
                      Instances For
                        @[simp]
                        @[simp]
                        theorem KoetheMultiProjective.mem_span_range_coe_iff {k : Type u_1} {N : } [CommSemiring k] {ι : Type u_2} [Finite ι] (f : ι(balancedAlgebra k N)) (p : (balancedAlgebra k N)) :
                        p Ideal.span (Set.range fun (i : ι) => (f i)) p Ideal.span (Set.range f)

                        Extending an ideal generated by balanced polynomials to the ambient polynomial ring and contracting it back introduces no new balanced elements.

                        theorem KoetheMultiProjective.mem_radical_span_range_coe_iff {k : Type u_1} {N : } [CommSemiring k] {ι : Type u_2} [Finite ι] (f : ι(balancedAlgebra k N)) (p : (balancedAlgebra k N)) :
                        p (Ideal.span (Set.range fun (i : ι) => (f i))).radical p (Ideal.span (Set.range f)).radical
                        noncomputable def KoetheMultiProjective.segre {k : Type u_1} {N : } [Field k] (j : Fin NFin 3) :

                        A Segre coordinate as an element of the balanced subalgebra.

                        Equations
                        Instances For
                          @[simp]
                          theorem KoetheMultiProjective.coe_segre {k : Type u_1} {N : } [Field k] (j : Fin NFin 3) :
                          noncomputable def KoetheMultiProjective.killVars {k : Type u_1} {N : } [Field k] (s : Finset (Vars N)) :

                          Set a specified finite set of ambient variables to zero.

                          Equations
                          Instances For
                            @[simp]
                            theorem KoetheMultiProjective.killVars_X {k : Type u_1} {N : } [Field k] (s : Finset (Vars N)) (v : Vars N) :
                            theorem KoetheMultiProjective.killVars_comp_of_subset {k : Type u_1} {N : } [Field k] {s t : Finset (Vars N)} (hst : st) :
                            theorem KoetheMultiProjective.zero_aeval_comp_killVars {k : Type u_1} {N : } [Field k] (s : Finset (Vars N)) :
                            (MvPolynomial.aeval fun (x : Vars N) => 0).comp (killVars s) = MvPolynomial.aeval fun (x : Vars N) => 0
                            noncomputable def KoetheMultiProjective.killedIdeal {k : Type u_1} {N : } [Field k] (s : Finset (Vars N)) :

                            Contract a prime variable ideal to the balanced subalgebra.

                            Equations
                            Instances For
                              @[simp]
                              theorem KoetheMultiProjective.mem_killedIdeal {k : Type u_1} {N : } [Field k] (s : Finset (Vars N)) (p : (balancedAlgebra k N)) :
                              p killedIdeal s (killVars s) p = 0
                              noncomputable def KoetheMultiProjective.vertexIdeal (k : Type u_2) [Field k] (N : ) :

                              The vertex of the affine Segre cone: the augmentation ideal.

                              Equations
                              Instances For
                                theorem KoetheMultiProjective.killedIdeal_mono {k : Type u_1} {N : } [Field k] {s t : Finset (Vars N)} (hst : st) :
                                theorem KoetheMultiProjective.killVars_segreMonomial_of_disjoint {k : Type u_1} {N : } [Field k] (s : Finset (Vars N)) (j : Fin NFin 3) (hj : ∀ (b : Fin N), (b, j b)s) :
                                theorem KoetheMultiProjective.killVars_segreMonomial_of_mem {k : Type u_1} {N : } [Field k] (s : Finset (Vars N)) (j : Fin NFin 3) (b : Fin N) (hb : (b, j b) s) :

                                Choose the newly killed variable in its block and the protected coordinate 2 in every other block.

                                Equations
                                Instances For
                                  theorem KoetheMultiProjective.separatingChoice_avoids {N : } {s : Finset (Vars N)} (hprotect : ∀ (b : Fin N), (b, 2)s) {v : Vars N} (hv : vs) (b : Fin N) :
                                  theorem KoetheMultiProjective.killedIdeal_lt_insert {k : Type u_1} {N : } [Field k] {s : Finset (Vars N)} (hprotect : ∀ (b : Fin N), (b, 2)s) {v : Vars N} (hv : vs) :

                                  Each additional killed coordinate strictly increases the contracted prime ideal.

                                  theorem KoetheMultiProjective.killedIdeal_lt_vertexIdeal {k : Type u_1} {N : } [Field k] [NeZero N] {s : Finset (Vars N)} (hprotect : ∀ (b : Fin N), (b, 2)s) :

                                  The final strict step kills the remaining positive-degree balanced monomials.

                                  theorem KoetheMultiProjective.card_le_height_killedIdeal {k : Type u_1} {N : } [Field k] (s : Finset (Vars N)) (hprotect : ∀ (b : Fin N), (b, 2)s) :

                                  The height of a contracted variable ideal is at least the number of killed coordinates, as long as one coordinate in every block remains protected.

                                  The Segre cone vertex has height at least 2*N + 1. The proof constructs all 2*N + 1 strict prime-ideal steps explicitly.

                                  theorem KoetheMultiProjective.eval_eq_constantCoeff_of_block_zero {k : Type u_1} {N : } [Field k] [NeZero N] {p : MvPolynomial (Vars N) k} (hp : p balancedAlgebra k N) {x : Vars Nk} {b : Fin N} (hx : ∀ (j : Fin 3), x (b, j) = 0) :

                                  On an assignment with one zero block, any balanced polynomial evaluates to its constant coefficient.

                                  theorem KoetheMultiProjective.radical_span_eq_vertex_of_no_common_zero {k : Type u_1} {N : } [Field k] [IsAlgClosed k] [NeZero N] {ι : Type u_2} [Finite ι] (f : ι(balancedAlgebra k N)) (hf : ∀ (i : ι), f i vertexIdeal k N) (hno : ¬∃ (x : Vars Nk), (∀ (b : Fin N), ∃ (j : Fin 3), x (b, j) 0) ∀ (i : ι), (MvPolynomial.eval x) (f i) = 0) :

                                  If balanced polynomials with zero constant term have no common zero with all blocks nonzero, their ideal in the balanced subalgebra has radical the vertex. This is the affine Nullstellensatz plus the explicitly proved retraction.

                                  theorem KoetheMultiProjective.exists_common_zero_balanced {k : Type u_1} {N : } [Field k] [IsAlgClosed k] [NeZero N] {q : } (hq : q 2 * N) (f : Fin q(balancedAlgebra k N)) (hf : ∀ (i : Fin q), f i vertexIdeal k N) :
                                  ∃ (x : Vars Nk), (∀ (b : Fin N), ∃ (j : Fin 3), x (b, j) 0) ∀ (i : Fin q), (MvPolynomial.eval x) (f i) = 0

                                  A slightly stronger algebraic theorem: the polynomials may be sums of balanced monomials of different degrees, provided all constant coefficients vanish.

                                  theorem KoetheMultiProjective.exists_common_zero {k : Type u_1} {N : } [Field k] [IsAlgClosed k] {q r : } (f : Fin qMvPolynomial (Fin N × Fin 3) k) (hN : 0 < N) (hr : 0 < r) (hq : q 2 * N) (hf : ∀ (i : Fin q), IsMultiHomogeneousOfDegree (f i) r) :
                                  ∃ (x : Fin N × Fin 3k), (∀ (b : Fin N), (fun (j : Fin 3) => x (b, j)) 0) ∀ (i : Fin q), (MvPolynomial.eval x) (f i) = 0

                                  Multiprojective common-zero theorem. Over an algebraically closed field, at most 2*N polynomials of common positive degree in every one of N blocks of three variables have a common zero with no zero block.

                                  The proof is entirely affine commutative algebra: finite generation of the balanced monomial algebra, a linear retraction, the Nullstellensatz, an explicit chain of prime ideals, and Krull's height theorem.

                                  theorem KoetheMultiProjective.exists_common_zero_of_coeff {k : Type u_1} {N : } [Field k] [IsAlgClosed k] {q r : } (f : Fin qMvPolynomial (Fin N × Fin 3) k) (hN : 0 < N) (hr : 0 < r) (hq : q 2 * N) (hf : ∀ (i : Fin q) (d : Fin N × Fin 3 →₀ ), MvPolynomial.coeff d (f i) 0∀ (b : Fin N), j : Fin 3, d (b, j) = r) :
                                  ∃ (x : Fin N × Fin 3k), (∀ (b : Fin N), (fun (j : Fin 3) => x (b, j)) 0) ∀ (i : Fin q), (MvPolynomial.eval x) (f i) = 0

                                  An entry point with the multihomogeneity hypothesis fully expanded in terms of coefficients and blockwise sums of exponents.

                                  theorem KoetheMultiProjective.exists_common_zero_vectors {k : Type u_1} {N : } [Field k] [IsAlgClosed k] {q r : } (f : Fin qMvPolynomial (Fin N × Fin 3) k) (hN : 0 < N) (hr : 0 < r) (hq : q 2 * N) (hf : ∀ (i : Fin q), IsMultiHomogeneousOfDegree (f i) r) :
                                  ∃ (x : Fin NFin 3k), (∀ (b : Fin N), x b 0) ∀ (i : Fin q), (MvPolynomial.eval fun (v : Fin N × Fin 3) => x v.1 v.2) (f i) = 0

                                  The same result with the assignment written as a family of nonzero vectors.