Documentation

TauCeti.Geometry.Toric.Algebraic.DualSemigroup.Regular

Regular coordinates on the dual semigroup of a toric cone #

Let σ be a toric cone and let b be an integral basis of N, indexed by ToricRay σ ⊕ ι, whose vectors at the ray indices are the primitive ray generators of σ. Evaluating integral characters on b identifies N →+ ℤ with the integer-valued functions on the index set, and an integral character lies in the dual semigroup of σ exactly when it is nonnegative on every primitive ray generator. The dual semigroup is therefore the monoid of functions that are nonnegative at the ray indices and arbitrary at the complementary indices, that is, to (ToricRay σ →₀ ℕ) × (ι →₀ ℤ).

This is the coordinate model (ι →₀ ℕ) × (κ →₀ ℤ) consumed by TauCeti.Toric.regularAffinePointEquiv, so for a regular cone it exhibits the complex points of the affine toric chart as ℂ ^ k × (ℂ ^ *) ^ (n - k), with k the number of rays and n the rank of the lattice. Finite generation for all lattice-rational cones is proved in TauCeti.Geometry.Toric.Algebraic.DualSemigroup.Finiteness.

Main declarations #

References #

noncomputable def TauCeti.Toric.regularDualSemigroupEquiv {N : Type u_1} {V : Type u_2} {ι : Type u_3} [AddCommGroup N] [AddCommGroup V] [Module ℝ V] {i : N →+ V} {σ : PointedCone ℝ V} (hi : IsIntegralLattice i) (hσ : IsToricCone i σ) {b : Module.Basis (ToricRay σ ⊕ ι) ℤ N} (hb : ∀ (ρ : ToricRay σ), IsPrimitiveGenerator i ρ (b (Sum.inl ρ))) :

The regular coordinates of the dual semigroup of a toric cone, attached to an integral basis indexed by ToricRay σ ⊕ ι whose ray vectors are the primitive ray generators. A character corresponds to its values on the basis: natural numbers at the ray indices, since it is nonnegative on the primitive ray generators, and arbitrary integers at the complementary indices.

Instances For
    @[simp]
    theorem TauCeti.Toric.coe_regularDualSemigroupEquiv_fst_apply {N : Type u_1} {V : Type u_2} {ι : Type u_3} [AddCommGroup N] [AddCommGroup V] [Module ℝ V] {i : N →+ V} {σ : PointedCone ℝ V} (hi : IsIntegralLattice i) (hσ : IsToricCone i σ) {b : Module.Basis (ToricRay σ ⊕ ι) ℤ N} (hb : ∀ (ρ : ToricRay σ), IsPrimitiveGenerator i ρ (b (Sum.inl ρ))) (m : ↥(dualSemigroup hi σ)) (ρ : ToricRay σ) :
    ↑(((regularDualSemigroupEquiv hi hσ hb) m).1 ρ) = ↑m (b (Sum.inl ρ))

    The ray coordinates of a character in the dual semigroup are its values on the primitive ray generators, which are natural numbers.

    theorem TauCeti.Toric.realCharacter_apply_primitiveGenerator {N : Type u_1} {V : Type u_2} {ι : Type u_3} [AddCommGroup N] [AddCommGroup V] [Module ℝ V] {i : N →+ V} {σ : PointedCone ℝ V} (hi : IsIntegralLattice i) (hσ : IsToricCone i σ) {b : Module.Basis (ToricRay σ ⊕ ι) ℤ N} (hb : ∀ (ρ : ToricRay σ), IsPrimitiveGenerator i ρ (b (Sum.inl ρ))) (m : ↥(dualSemigroup hi σ)) (ρ : ToricRay σ) :
    (hi.realCharacter ↑m) (i (primitiveGenerator hi hσ ρ)) = ↑(((regularDualSemigroupEquiv hi hσ hb) m).1 ρ)

    Evaluating the real character of a dual-semigroup element at a primitive ray generator gives the corresponding regular ray coordinate, viewed in ℝ.

    @[simp]
    theorem TauCeti.Toric.regularDualSemigroupEquiv_snd_apply {N : Type u_1} {V : Type u_2} {ι : Type u_3} [AddCommGroup N] [AddCommGroup V] [Module ℝ V] {i : N →+ V} {σ : PointedCone ℝ V} (hi : IsIntegralLattice i) (hσ : IsToricCone i σ) {b : Module.Basis (ToricRay σ ⊕ ι) ℤ N} (hb : ∀ (ρ : ToricRay σ), IsPrimitiveGenerator i ρ (b (Sum.inl ρ))) (m : ↥(dualSemigroup hi σ)) (j : ι) :
    ((regularDualSemigroupEquiv hi hσ hb) m).2 j = ↑m (b (Sum.inr j))

    The complementary coordinates of a character in the dual semigroup are its values on the complementary basis vectors.

    @[simp]
    theorem TauCeti.Toric.regularDualSemigroupEquiv_symm_apply_inl {N : Type u_1} {V : Type u_2} {ι : Type u_3} [AddCommGroup N] [AddCommGroup V] [Module ℝ V] {i : N →+ V} {σ : PointedCone ℝ V} (hi : IsIntegralLattice i) (hσ : IsToricCone i σ) {b : Module.Basis (ToricRay σ ⊕ ι) ℤ N} (hb : ∀ (ρ : ToricRay σ), IsPrimitiveGenerator i ρ (b (Sum.inl ρ))) (p : (ToricRay σ →₀ ℕ) × (ι →₀ ℤ)) (ρ : ToricRay σ) :
    ↑((regularDualSemigroupEquiv hi hσ hb).symm p) (b (Sum.inl ρ)) = ↑(p.1 ρ)

    The character with prescribed regular coordinates takes the prescribed natural value on each primitive ray generator.

    @[simp]
    theorem TauCeti.Toric.regularDualSemigroupEquiv_symm_apply_inr {N : Type u_1} {V : Type u_2} {ι : Type u_3} [AddCommGroup N] [AddCommGroup V] [Module ℝ V] {i : N →+ V} {σ : PointedCone ℝ V} (hi : IsIntegralLattice i) (hσ : IsToricCone i σ) {b : Module.Basis (ToricRay σ ⊕ ι) ℤ N} (hb : ∀ (ρ : ToricRay σ), IsPrimitiveGenerator i ρ (b (Sum.inl ρ))) (p : (ToricRay σ →₀ ℕ) × (ι →₀ ℤ)) (j : ι) :
    ↑((regularDualSemigroupEquiv hi hσ hb).symm p) (b (Sum.inr j)) = p.2 j

    The character with prescribed regular coordinates takes the prescribed integral value on each complementary basis vector.

    The dual basis characters #

    noncomputable def TauCeti.Toric.dualSemigroupCoord {N : Type u_1} {V : Type u_2} {ι : Type u_3} [AddCommGroup N] [AddCommGroup V] [Module ℝ V] {i : N →+ V} {σ : PointedCone ℝ V} (hi : IsIntegralLattice i) (hσ : IsToricCone i σ) {b : Module.Basis (ToricRay σ ⊕ ι) ℤ N} (hb : ∀ (ρ : ToricRay σ), IsPrimitiveGenerator i ρ (b (Sum.inl ρ))) (c : ToricRay σ ⊕ ι) :
    ↥(dualSemigroup hi σ)

    The coordinate functional of a basis extending the primitive ray generators, as an element of the dual semigroup of the cone: its values on the basis vectors are 0 and 1, so it is nonnegative on every primitive ray generator. These characters are the monomials whose values on a complex point are the regular coordinates of the affine chart of the cone, the ray indices giving the coordinates that may vanish.

    Instances For
      @[simp]
      theorem TauCeti.Toric.coe_dualSemigroupCoord {N : Type u_1} {V : Type u_2} {ι : Type u_3} [AddCommGroup N] [AddCommGroup V] [Module ℝ V] {i : N →+ V} {σ : PointedCone ℝ V} (hi : IsIntegralLattice i) (hσ : IsToricCone i σ) {b : Module.Basis (ToricRay σ ⊕ ι) ℤ N} (hb : ∀ (ρ : ToricRay σ), IsPrimitiveGenerator i ρ (b (Sum.inl ρ))) (c : ToricRay σ ⊕ ι) :
      ↑(dualSemigroupCoord hi hσ hb c) = (b.coord c).toAddMonoidHom
      theorem TauCeti.Toric.dualSemigroupCoord_apply_basis_self {N : Type u_1} {V : Type u_2} {ι : Type u_3} [AddCommGroup N] [AddCommGroup V] [Module ℝ V] {i : N →+ V} {σ : PointedCone ℝ V} (hi : IsIntegralLattice i) (hσ : IsToricCone i σ) {b : Module.Basis (ToricRay σ ⊕ ι) ℤ N} (hb : ∀ (ρ : ToricRay σ), IsPrimitiveGenerator i ρ (b (Sum.inl ρ))) (c : ToricRay σ ⊕ ι) :
      ↑(dualSemigroupCoord hi hσ hb c) (b c) = 1

      A dual basis character takes the value 1 on its own basis vector.

      theorem TauCeti.Toric.dualSemigroupCoord_apply_basis_of_ne {N : Type u_1} {V : Type u_2} {ι : Type u_3} [AddCommGroup N] [AddCommGroup V] [Module ℝ V] {i : N →+ V} {σ : PointedCone ℝ V} (hi : IsIntegralLattice i) (hσ : IsToricCone i σ) {b : Module.Basis (ToricRay σ ⊕ ι) ℤ N} (hb : ∀ (ρ : ToricRay σ), IsPrimitiveGenerator i ρ (b (Sum.inl ρ))) {c c' : ToricRay σ ⊕ ι} (h : c' ≠ c) :
      ↑(dualSemigroupCoord hi hσ hb c) (b c') = 0

      A dual basis character vanishes on every other basis vector.

      @[simp]
      theorem TauCeti.Toric.regularDualSemigroupEquiv_fst_dualSemigroupCoord_inl {N : Type u_1} {V : Type u_2} {ι : Type u_3} [AddCommGroup N] [AddCommGroup V] [Module ℝ V] {i : N →+ V} {σ : PointedCone ℝ V} (hi : IsIntegralLattice i) (hσ : IsToricCone i σ) {b : Module.Basis (ToricRay σ ⊕ ι) ℤ N} (hb : ∀ (ρ : ToricRay σ), IsPrimitiveGenerator i ρ (b (Sum.inl ρ))) {b' : Module.Basis (ToricRay σ ⊕ ι) ℤ N} (hb' : ∀ (ρ : ToricRay σ), IsPrimitiveGenerator i ρ (b' (Sum.inl ρ))) (ρ : ToricRay σ) :

      The ray coordinates of the dual basis character of a ray index of a second extending basis form the standard generator at that ray: both bases carry the primitive generator of a ray at the index of that ray, so the ray block of the transition matrix is the identity.

      @[simp]
      theorem TauCeti.Toric.regularDualSemigroupEquiv_fst_dualSemigroupCoord_inr {N : Type u_1} {V : Type u_2} {ι : Type u_3} [AddCommGroup N] [AddCommGroup V] [Module ℝ V] {i : N →+ V} {σ : PointedCone ℝ V} (hi : IsIntegralLattice i) (hσ : IsToricCone i σ) {b : Module.Basis (ToricRay σ ⊕ ι) ℤ N} (hb : ∀ (ρ : ToricRay σ), IsPrimitiveGenerator i ρ (b (Sum.inl ρ))) {b' : Module.Basis (ToricRay σ ⊕ ι) ℤ N} (hb' : ∀ (ρ : ToricRay σ), IsPrimitiveGenerator i ρ (b' (Sum.inl ρ))) (j : ι) :
      ((regularDualSemigroupEquiv hi hσ hb) (dualSemigroupCoord hi hσ hb' (Sum.inr j))).1 = 0

      The dual basis character of a complementary index of a second extending basis has no ray coordinates: it vanishes on every primitive ray generator, since both bases carry the primitive generator of a ray at the index of that ray.

      theorem TauCeti.Toric.regularDualSemigroupEquiv_snd_dualSemigroupCoord {N : Type u_1} {V : Type u_2} {ι : Type u_3} [AddCommGroup N] [AddCommGroup V] [Module ℝ V] {i : N →+ V} {σ : PointedCone ℝ V} (hi : IsIntegralLattice i) (hσ : IsToricCone i σ) {b : Module.Basis (ToricRay σ ⊕ ι) ℤ N} (hb : ∀ (ρ : ToricRay σ), IsPrimitiveGenerator i ρ (b (Sum.inl ρ))) {b' : Module.Basis (ToricRay σ ⊕ ι) ℤ N} (hb' : ∀ (ρ : ToricRay σ), IsPrimitiveGenerator i ρ (b' (Sum.inl ρ))) (c : ToricRay σ ⊕ ι) (j : ι) :
      ((regularDualSemigroupEquiv hi hσ hb) (dualSemigroupCoord hi hσ hb' c)).2 j = b'.toMatrix (⇑b) c (Sum.inr j)

      The complementary coordinates of the dual basis character of a second extending basis are the entries of the transition matrix between the two bases.

      @[simp]
      theorem TauCeti.Toric.regularDualSemigroupEquiv_symm_apply_single_zero {N : Type u_1} {V : Type u_2} {ι : Type u_3} [AddCommGroup N] [AddCommGroup V] [Module ℝ V] {i : N →+ V} {σ : PointedCone ℝ V} (hi : IsIntegralLattice i) (hσ : IsToricCone i σ) {b : Module.Basis (ToricRay σ ⊕ ι) ℤ N} (hb : ∀ (ρ : ToricRay σ), IsPrimitiveGenerator i ρ (b (Sum.inl ρ))) (ρ : ToricRay σ) :

      The character with a single standard ray coordinate is the dual basis character of that ray index.

      @[simp]
      theorem TauCeti.Toric.regularDualSemigroupEquiv_symm_apply_zero_single {N : Type u_1} {V : Type u_2} {ι : Type u_3} [AddCommGroup N] [AddCommGroup V] [Module ℝ V] {i : N →+ V} {σ : PointedCone ℝ V} (hi : IsIntegralLattice i) (hσ : IsToricCone i σ) {b : Module.Basis (ToricRay σ ⊕ ι) ℤ N} (hb : ∀ (ρ : ToricRay σ), IsPrimitiveGenerator i ρ (b (Sum.inl ρ))) (j : ι) :

      The character with a single standard complementary coordinate is the dual basis character of that complementary index.

      The dual semigroup of a regular cone with k rays in a lattice of rank n is isomorphic to ℕ ^ k × ℤ ^ (n - k), the ray coordinates being indexed by the rays themselves.

      theorem TauCeti.Toric.IsRegularCone.mem_iff_forall_realCharacter_nonneg {N : Type u_1} {V : Type u_2} [AddCommGroup N] [AddCommGroup V] [Module ℝ V] {i : N →+ V} {σ : PointedCone ℝ V} (hi : IsIntegralLattice i) (hσ : IsRegularCone i σ) {v : V} :
      v ∈ σ ↔ ∀ m ∈ dualSemigroup hi σ, 0 ≤ (hi.realCharacter m) v

      A regular cone is cut out by its dual semigroup: a point of the ambient real space lies in the cone exactly when the real extension of every character of the dual semigroup is nonnegative at it.

      theorem TauCeti.Toric.IsRegularCone.mem_iff_forall_realCharacter_nonneg_of_closure_range_eq_top {N : Type u_1} {V : Type u_2} [AddCommGroup N] [AddCommGroup V] [Module ℝ V] {i : N →+ V} {σ : PointedCone ℝ V} (hi : IsIntegralLattice i) (hσ : IsRegularCone i σ) {ι : Type u_4} {s : ι → ↥(dualSemigroup hi σ)} (hs : AddSubmonoid.closure (Set.range s) = ⊤) {v : V} :
      v ∈ σ ↔ ∀ (j : ι), 0 ≤ (hi.realCharacter ↑(s j)) v

      A regular cone is cut out by any generating family of its dual semigroup: a point lies in the cone exactly when the real extension of every character of the family is nonnegative at it.