Documentation

Counterexamples.MapFloor

Floors and ceils aren't preserved under ordered ring homomorphisms #

Intuitively, if f : α → β is an ordered ring homomorphism, then floors and ceils should be preserved by f because:

However, there is a catch. Potentially something whose floor was n could get mapped to n + 1, and this has floor n + 1, not n. Note that this is at most an off by one error.

This pathology disappears if you require f to be strictly monotone or α to be archimedean.

The counterexample #

Consider ℤ[ε] (IntWithEpsilon), the integers with infinitesimals adjoined. This is a linearly ordered commutative floor ring (IntWithEpsilon.linearOrderedCommRing, IntWithEpsilon.floorRing).

The map f : ℤ[ε] → ℤ that forgets about the epsilons (IntWithEpsilon.forgetEpsilons) is an ordered ring homomorphism.

But it does not preserve floors (nor ceils) as ⌊-ε⌋ = -1 while ⌊f (-ε)⌋ = ⌊0⌋ = 0 (IntWithEpsilon.forgetEpsilons_floor_lt, IntWithEpsilon.lt_forgetEpsilons_ceil).

The integers with infinitesimals adjoined.

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

    The ordered ring homomorphisms from ℤ[ε] to that "forgets" the εs.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      @[simp]
      theorem Counterexample.IntWithEpsilon.forgetEpsilons_apply (p : Counterexample.IntWithEpsilon) :
      Counterexample.IntWithEpsilon.forgetEpsilons p = Polynomial.coeff p 0
      theorem Counterexample.IntWithEpsilon.forgetEpsilons_floor_lt (n : ) :
      Counterexample.IntWithEpsilon.forgetEpsilons n - Polynomial.X < Counterexample.IntWithEpsilon.forgetEpsilons (n - Polynomial.X)

      The floor of n - ε is n - 1 but its image under forgetEpsilons is n, whose floor is itself.

      theorem Counterexample.IntWithEpsilon.lt_forgetEpsilons_ceil (n : ) :
      Counterexample.IntWithEpsilon.forgetEpsilons (n + Polynomial.X) < Counterexample.IntWithEpsilon.forgetEpsilons n + Polynomial.X

      The ceil of n + ε is n + 1 but its image under forgetEpsilons is n, whose ceil is itself.