A canonically ordered commutative semiring with two different elements a and b such that
a ≠ b and 2 * a = 2 * b.  Thus, multiplication by a fixed non-zero element of a canonically
ordered semiring need not be injective.  In particular, multiplying by a strictly positive element
need not be strictly monotone.
Recall that a canonically ordered commutative semiring is a commutative semiring with a partial
ordering that is "canonical" in the sense that the inequality a ≤ b holds if and only if there is
a c such that a + c = b.  There are several compatibility conditions among
addition/multiplication and the order relation.  The point of the counterexample is to show that
monotonicity of multiplication cannot be strengthened to strict monotonicity.
Reference: https://leanprover.zulipchat.com/#narrow/stream/113489-new-members/topic/canonically_ordered.20pathology
The preorder relation on ℕ × ℤ/2ℤ where we only compare the first coordinate,
except that we leave incomparable each pair of elements with the same first component.
For instance, ∀ α, β ∈ ℤ/2ℤ, the inequality (1,α) ≤ (2,β) holds,
whereas, ∀ n ∈ ℤ, the elements (n,0) and (n,1) are incomparable.
Equations
- One or more equations did not get rendered due to their size.
Equations
Equations
- Counterexample.Nxzmod2.csrN21 = { toAddCommMonoid := Counterexample.Nxzmod2.csrN2.toAddCommMonoid, toIsLeftCancelAdd := Counterexample.Nxzmod2.csrN21._proof_1 }
The subsemiring corresponding to the elements of L, used to transfer instances.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Counterexample.ExL.instPartialOrderL = Subtype.partialOrder fun (l : ℕ × ZMod 2) => l ≠ (0, 1)
Equations
- Counterexample.ExL.inhabited = { default := 1 }
Equations
- Counterexample.ExL.orderBot = { bot := 0, bot_le := Counterexample.ExL.bot_le }