Built with Alectryon, running Coq+SerAPI v8.19.0+0.19.3. Bubbles () indicate interactive fragments: hover for details, tap to reveal contents. Use Ctrl+↑Ctrl+↓ to navigate, Ctrl+🖱️ to focus. On Mac, use ⌘ instead of Ctrl.
[Loading ML file number_string_notation_plugin.cmxs (using legacy method) ... done]
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R PartialOrder0: PartialOrder Rle plus_spec: forallz : R, OrderPreserving (plus z) mult_spec: forallxy : R,
PropHolds (0 ≤ x) ->
PropHolds (0 ≤ y) -> PropHolds (0 ≤ x * y)
SemiRingOrder le
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R PartialOrder0: PartialOrder Rle plus_spec: forallz : R, OrderPreserving (plus z) mult_spec: forallxy : R,
PropHolds (0 ≤ x) ->
PropHolds (0 ≤ y) -> PropHolds (0 ≤ x * y)
SemiRingOrder le
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R PartialOrder0: PartialOrder Rle plus_spec: forallz : R, OrderPreserving (plus z) mult_spec: forallxy : R,
PropHolds (0 ≤ x) ->
PropHolds (0 ≤ y) -> PropHolds (0 ≤ x * y)
forallxy : R, x ≤ y -> {z : R & y = x + z}
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R PartialOrder0: PartialOrder Rle plus_spec: forallz : R, OrderPreserving (plus z) mult_spec: forallxy : R,
PropHolds (0 ≤ x) ->
PropHolds (0 ≤ y) -> PropHolds (0 ≤ x * y) z: R
OrderReflecting (plus z)
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R PartialOrder0: PartialOrder Rle plus_spec: forallz : R, OrderPreserving (plus z) mult_spec: forallxy : R,
PropHolds (0 ≤ x) ->
PropHolds (0 ≤ y) -> PropHolds (0 ≤ x * y)
forallxy : R, x ≤ y -> {z : R & y = x + z}
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R PartialOrder0: PartialOrder Rle plus_spec: forallz : R, OrderPreserving (plus z) mult_spec: forallxy : R,
PropHolds (0 ≤ x) ->
PropHolds (0 ≤ y) -> PropHolds (0 ≤ x * y) x, y: R E: x ≤ y
{z : R & y = x + z}
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R PartialOrder0: PartialOrder Rle plus_spec: forallz : R, OrderPreserving (plus z) mult_spec: forallxy : R,
PropHolds (0 ≤ x) ->
PropHolds (0 ≤ y) -> PropHolds (0 ≤ x * y) x, y: R E: x ≤ y
y = x + (- x + y)
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R PartialOrder0: PartialOrder Rle plus_spec: forallz : R, OrderPreserving (plus z) mult_spec: forallxy : R,
PropHolds (0 ≤ x) ->
PropHolds (0 ≤ y) -> PropHolds (0 ≤ x * y) x, y: R E: x ≤ y
y = y
reflexivity.
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R PartialOrder0: PartialOrder Rle plus_spec: forallz : R, OrderPreserving (plus z) mult_spec: forallxy : R,
PropHolds (0 ≤ x) ->
PropHolds (0 ≤ y) -> PropHolds (0 ≤ x * y) z: R
OrderReflecting (plus z)
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R PartialOrder0: PartialOrder Rle plus_spec: forallz : R, OrderPreserving (plus z) mult_spec: forallxy : R,
PropHolds (0 ≤ x) ->
PropHolds (0 ≤ y) -> PropHolds (0 ≤ x * y) z, x, y: R E: z + x ≤ z + y
x ≤ y
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R PartialOrder0: PartialOrder Rle plus_spec: forallz : R, OrderPreserving (plus z) mult_spec: forallxy : R,
PropHolds (0 ≤ x) ->
PropHolds (0 ≤ y) -> PropHolds (0 ≤ x * y) z, x, y: R E: z + x ≤ z + y
- z + (z + x) ≤ - z + (z + y)
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R PartialOrder0: PartialOrder Rle plus_spec: forallz : R, OrderPreserving (plus z) mult_spec: forallxy : R,
PropHolds (0 ≤ x) ->
PropHolds (0 ≤ y) -> PropHolds (0 ≤ x * y) z, x, y: R E: z + x ≤ z + y
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictOrder0: StrictOrder Rlt plus_spec: forallz : R,
StrictlyOrderPreserving (plus z) mult_spec: forallxy : R,
PropHolds (0 < x) ->
PropHolds (0 < y) -> PropHolds (0 < x * y)
StrictSemiRingOrder lt
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictOrder0: StrictOrder Rlt plus_spec: forallz : R,
StrictlyOrderPreserving (plus z) mult_spec: forallxy : R,
PropHolds (0 < x) ->
PropHolds (0 < y) -> PropHolds (0 < x * y)
StrictSemiRingOrder lt
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictOrder0: StrictOrder Rlt plus_spec: forallz : R,
StrictlyOrderPreserving (plus z) mult_spec: forallxy : R,
PropHolds (0 < x) ->
PropHolds (0 < y) -> PropHolds (0 < x * y)
forallxy : R, x < y -> {z : R & y = x + z}
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictOrder0: StrictOrder Rlt plus_spec: forallz : R,
StrictlyOrderPreserving (plus z) mult_spec: forallxy : R,
PropHolds (0 < x) ->
PropHolds (0 < y) -> PropHolds (0 < x * y) z: R
StrictlyOrderReflecting (plus z)
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictOrder0: StrictOrder Rlt plus_spec: forallz : R,
StrictlyOrderPreserving (plus z) mult_spec: forallxy : R,
PropHolds (0 < x) ->
PropHolds (0 < y) -> PropHolds (0 < x * y)
forallxy : R, x < y -> {z : R & y = x + z}
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictOrder0: StrictOrder Rlt plus_spec: forallz : R,
StrictlyOrderPreserving (plus z) mult_spec: forallxy : R,
PropHolds (0 < x) ->
PropHolds (0 < y) -> PropHolds (0 < x * y) x, y: R E: x < y
{z : R & y = x + z}
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictOrder0: StrictOrder Rlt plus_spec: forallz : R,
StrictlyOrderPreserving (plus z) mult_spec: forallxy : R,
PropHolds (0 < x) ->
PropHolds (0 < y) -> PropHolds (0 < x * y) x, y: R E: x < y
y = x + (- x + y)
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictOrder0: StrictOrder Rlt plus_spec: forallz : R,
StrictlyOrderPreserving (plus z) mult_spec: forallxy : R,
PropHolds (0 < x) ->
PropHolds (0 < y) -> PropHolds (0 < x * y) x, y: R E: x < y
y = y
reflexivity.
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictOrder0: StrictOrder Rlt plus_spec: forallz : R,
StrictlyOrderPreserving (plus z) mult_spec: forallxy : R,
PropHolds (0 < x) ->
PropHolds (0 < y) -> PropHolds (0 < x * y) z: R
StrictlyOrderReflecting (plus z)
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictOrder0: StrictOrder Rlt plus_spec: forallz : R,
StrictlyOrderPreserving (plus z) mult_spec: forallxy : R,
PropHolds (0 < x) ->
PropHolds (0 < y) -> PropHolds (0 < x * y) z, x, y: R E: z + x < z + y
x < y
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictOrder0: StrictOrder Rlt plus_spec: forallz : R,
StrictlyOrderPreserving (plus z) mult_spec: forallxy : R,
PropHolds (0 < x) ->
PropHolds (0 < y) -> PropHolds (0 < x * y) z, x, y: R E: z + x < z + y
- z + (z + x) < - z + (z + y)
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictOrder0: StrictOrder Rlt plus_spec: forallz : R,
StrictlyOrderPreserving (plus z) mult_spec: forallxy : R,
PropHolds (0 < x) ->
PropHolds (0 < y) -> PropHolds (0 < x * y) z, x, y: R E: z + x < z + y
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R H0: Apart R Rlt: Lt R PseudoOrder0: PseudoOrder Rlt plus_spec: forallz : R,
StrictlyOrderPreserving (plus z) mult_ext: StrongBinaryExtensionality mult mult_spec: forallxy : R,
PropHolds (0 < x) ->
PropHolds (0 < y) -> PropHolds (0 < x * y)
PseudoSemiRingOrder lt
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R H0: Apart R Rlt: Lt R PseudoOrder0: PseudoOrder Rlt plus_spec: forallz : R,
StrictlyOrderPreserving (plus z) mult_ext: StrongBinaryExtensionality mult mult_spec: forallxy : R,
PropHolds (0 < x) ->
PropHolds (0 < y) -> PropHolds (0 < x * y)
PseudoSemiRingOrder lt
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R H0: Apart R Rlt: Lt R PseudoOrder0: PseudoOrder Rlt plus_spec: forallz : R,
StrictlyOrderPreserving (plus z) mult_ext: StrongBinaryExtensionality mult mult_spec: forallxy : R,
PropHolds (0 < x) ->
PropHolds (0 < y) -> PropHolds (0 < x * y)
forallxy : R, ~ (y < x) -> {z : R & y = x + z}
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R H0: Apart R Rlt: Lt R PseudoOrder0: PseudoOrder Rlt plus_spec: forallz : R,
StrictlyOrderPreserving (plus z) mult_ext: StrongBinaryExtensionality mult mult_spec: forallxy : R,
PropHolds (0 < x) ->
PropHolds (0 < y) -> PropHolds (0 < x * y) z: R
StrictlyOrderReflecting (plus z)
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R H0: Apart R Rlt: Lt R PseudoOrder0: PseudoOrder Rlt plus_spec: forallz : R,
StrictlyOrderPreserving (plus z) mult_ext: StrongBinaryExtensionality mult mult_spec: forallxy : R,
PropHolds (0 < x) ->
PropHolds (0 < y) -> PropHolds (0 < x * y)
forallxy : R, ~ (y < x) -> {z : R & y = x + z}
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R H0: Apart R Rlt: Lt R PseudoOrder0: PseudoOrder Rlt plus_spec: forallz : R,
StrictlyOrderPreserving (plus z) mult_ext: StrongBinaryExtensionality mult mult_spec: forallxy : R,
PropHolds (0 < x) ->
PropHolds (0 < y) -> PropHolds (0 < x * y) x, y: R E: ~ (y < x)
{z : R & y = x + z}
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R H0: Apart R Rlt: Lt R PseudoOrder0: PseudoOrder Rlt plus_spec: forallz : R,
StrictlyOrderPreserving (plus z) mult_ext: StrongBinaryExtensionality mult mult_spec: forallxy : R,
PropHolds (0 < x) ->
PropHolds (0 < y) -> PropHolds (0 < x * y) x, y: R E: ~ (y < x)
y = x + (- x + y)
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R H0: Apart R Rlt: Lt R PseudoOrder0: PseudoOrder Rlt plus_spec: forallz : R,
StrictlyOrderPreserving (plus z) mult_ext: StrongBinaryExtensionality mult mult_spec: forallxy : R,
PropHolds (0 < x) ->
PropHolds (0 < y) -> PropHolds (0 < x * y) x, y: R E: ~ (y < x)
y = y
reflexivity.
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R H0: Apart R Rlt: Lt R PseudoOrder0: PseudoOrder Rlt plus_spec: forallz : R,
StrictlyOrderPreserving (plus z) mult_ext: StrongBinaryExtensionality mult mult_spec: forallxy : R,
PropHolds (0 < x) ->
PropHolds (0 < y) -> PropHolds (0 < x * y) z: R
StrictlyOrderReflecting (plus z)
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R H0: Apart R Rlt: Lt R PseudoOrder0: PseudoOrder Rlt plus_spec: forallz : R,
StrictlyOrderPreserving (plus z) mult_ext: StrongBinaryExtensionality mult mult_spec: forallxy : R,
PropHolds (0 < x) ->
PropHolds (0 < y) -> PropHolds (0 < x * y) z, x, y: R E: z + x < z + y
x < y
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R H0: Apart R Rlt: Lt R PseudoOrder0: PseudoOrder Rlt plus_spec: forallz : R,
StrictlyOrderPreserving (plus z) mult_ext: StrongBinaryExtensionality mult mult_spec: forallxy : R,
PropHolds (0 < x) ->
PropHolds (0 < y) -> PropHolds (0 < x * y) z, x, y: R E: z + x < z + y
- z + (z + x) < - z + (z + y)
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R H0: Apart R Rlt: Lt R PseudoOrder0: PseudoOrder Rlt plus_spec: forallz : R,
StrictlyOrderPreserving (plus z) mult_ext: StrongBinaryExtensionality mult mult_spec: forallxy : R,
PropHolds (0 < x) ->
PropHolds (0 < y) -> PropHolds (0 < x * y) z, x, y: R E: z + x < z + y
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R H0: Apart R Rle: Le R Rlt: Lt R FullPseudoOrder0: FullPseudoOrder Rle Rlt plus_spec: forallz : R,
StrictlyOrderPreserving (plus z) mult_ext: StrongBinaryExtensionality mult mult_spec: forallxy : R,
PropHolds (0 < x) ->
PropHolds (0 < y) -> PropHolds (0 < x * y)
FullPseudoSemiRingOrder le lt
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R H0: Apart R Rle: Le R Rlt: Lt R FullPseudoOrder0: FullPseudoOrder Rle Rlt plus_spec: forallz : R,
StrictlyOrderPreserving (plus z) mult_ext: StrongBinaryExtensionality mult mult_spec: forallxy : R,
PropHolds (0 < x) ->
PropHolds (0 < y) -> PropHolds (0 < x * y)
FullPseudoSemiRingOrder le lt
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R H0: Apart R Rle: Le R Rlt: Lt R FullPseudoOrder0: FullPseudoOrder Rle Rlt plus_spec: forallz : R,
StrictlyOrderPreserving (plus z) mult_ext: StrongBinaryExtensionality mult mult_spec: forallxy : R,
PropHolds (0 < x) ->
PropHolds (0 < y) -> PropHolds (0 < x * y)
is_mere_relation R le
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R H0: Apart R Rle: Le R Rlt: Lt R FullPseudoOrder0: FullPseudoOrder Rle Rlt plus_spec: forallz : R,
StrictlyOrderPreserving (plus z) mult_ext: StrongBinaryExtensionality mult mult_spec: forallxy : R,
PropHolds (0 < x) ->
PropHolds (0 < y) -> PropHolds (0 < x * y)
PseudoSemiRingOrder lt
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R H0: Apart R Rle: Le R Rlt: Lt R FullPseudoOrder0: FullPseudoOrder Rle Rlt plus_spec: forallz : R,
StrictlyOrderPreserving (plus z) mult_ext: StrongBinaryExtensionality mult mult_spec: forallxy : R,
PropHolds (0 < x) ->
PropHolds (0 < y) -> PropHolds (0 < x * y)
forallxy : R, x ≤ y <-> ~ (y < x)
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R H0: Apart R Rle: Le R Rlt: Lt R FullPseudoOrder0: FullPseudoOrder Rle Rlt plus_spec: forallz : R,
StrictlyOrderPreserving (plus z) mult_ext: StrongBinaryExtensionality mult mult_spec: forallxy : R,
PropHolds (0 < x) ->
PropHolds (0 < y) -> PropHolds (0 < x * y)
is_mere_relation R le
exact _.
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R H0: Apart R Rle: Le R Rlt: Lt R FullPseudoOrder0: FullPseudoOrder Rle Rlt plus_spec: forallz : R,
StrictlyOrderPreserving (plus z) mult_ext: StrongBinaryExtensionality mult mult_spec: forallxy : R,
PropHolds (0 < x) ->
PropHolds (0 < y) -> PropHolds (0 < x * y)
PseudoSemiRingOrder lt
apply from_pseudo_ring_order;trivial.
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R H0: Apart R Rle: Le R Rlt: Lt R FullPseudoOrder0: FullPseudoOrder Rle Rlt plus_spec: forallz : R,
StrictlyOrderPreserving (plus z) mult_ext: StrongBinaryExtensionality mult mult_spec: forallxy : R,
PropHolds (0 < x) ->
PropHolds (0 < y) -> PropHolds (0 < x * y)
forallxy : R, x ≤ y <-> ~ (y < x)
exact le_iff_not_lt_flip;trivial.Qed.Endfrom_full_pseudo_ring_order.Sectionring_order.Context `{IsCRing R} `{!SemiRingOrder Rle}.(* Add Ring R : (stdlib_ring_theory R). *)
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x, y: R
- y ≤ - x <-> x ≤ y
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x, y: R
- y ≤ - x <-> x ≤ y
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x, y: R
forallab : R, a ≤ b -> - b ≤ - a
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x, y: R X: forallab : R, a ≤ b -> - b ≤ - a
- y ≤ - x <-> x ≤ y
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x, y: R
forallab : R, a ≤ b -> - b ≤ - a
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x, y, a, b: R E: a ≤ b
- b ≤ - a
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x, y, a, b: R E: a ≤ b
- b = - a - b + a
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x, y, a, b: R E: a ≤ b
- a - b + a ≤ - a - b + b
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x, y, a, b: R E: a ≤ b
- a - b + b = - a
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x, y, a, b: R E: a ≤ b
- b = - a - b + a
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x, y, a, b: R E: a ≤ b
- b = - b
reflexivity.
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x, y, a, b: R E: a ≤ b
- a - b + a ≤ - a - b + b
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x, y, a, b: R E: a ≤ b
a ≤ b
trivial.
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x, y, a, b: R E: a ≤ b
- a - b + b = - a
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x, y, a, b: R E: a ≤ b
- a + 0 = - a
apply plus_0_r.
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x, y: R X: forallab : R, a ≤ b -> - b ≤ - a
- y ≤ - x <-> x ≤ y
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x, y: R X: forallab : R, a ≤ b -> - b ≤ - a X0: - y ≤ - x
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x: R
0 ≤ x <-> - x ≤ 0
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x: R
0 ≤ x <-> - x ≤ 0
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x: R E: 0 ≤ x
- x ≤ 0
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x: R E: - x ≤ 0
0 ≤ x
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x: R E: 0 ≤ x
- x ≤ 0
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x: R E: 0 ≤ x
- x ≤ - 0
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x: R E: 0 ≤ x
- - 0 ≤ - - x
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x: R E: 0 ≤ x
0 ≤ x
trivial.
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x: R E: - x ≤ 0
0 ≤ x
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x: R E: - x ≤ 0
- x ≤ - 0
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x: R E: - x ≤ 0
- x ≤ 0
trivial.Qed.
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x: R
x ≤ 0 <-> 0 ≤ - x
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x: R
x ≤ 0 <-> 0 ≤ - x
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x: R
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x, y, z: R
z ≤ y - x <-> z + x ≤ y
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x, y, z: R
z ≤ y - x <-> z + x ≤ y
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x, y, z: R E: z ≤ y - x
z + x ≤ y
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x, y, z: R E: z + x ≤ y
z ≤ y - x
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x, y, z: R E: z ≤ y - x
z + x ≤ y
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x, y, z: R E: z ≤ y - x
x + z ≤ y
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x, y, z: R E: z ≤ y - x
x + z ≤ x + (y - x)
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x, y, z: R E: z ≤ y - x
z ≤ y - x
trivial.
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x, y, z: R E: z + x ≤ y
z ≤ y - x
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x, y, z: R E: z + x ≤ y
z ≤ - x + y
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x, y, z: R E: z + x ≤ y
- x + (z + x) ≤ - x + y
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x, y, z: R E: z + x ≤ y
z + x ≤ y
trivial.Qed.
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x, y, z: R
y - x ≤ z <-> y ≤ z + x
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x, y, z: R
y - x ≤ z <-> y ≤ z + x
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x, y, z: R
y - x ≤ z <-> y ≤ z - - x
split; apply flip_le_minus_r.Qed.
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x, y: R
0 ≤ y - x <-> x ≤ y
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x, y: R
0 ≤ y - x <-> x ≤ y
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x, y: R
0 ≤ y - x <-> 0 + x ≤ y
apply flip_le_minus_r.Qed.
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x, y: R
y - x ≤ 0 <-> y ≤ x
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x, y: R
y - x ≤ 0 <-> y ≤ x
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x, y: R
y - x ≤ 0 <-> y ≤ 0 + x
apply flip_le_minus_l.Qed.
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x, y, z: R
0 ≤ z -> x ≤ y -> x - z ≤ y
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x, y, z: R
0 ≤ z -> x ≤ y -> x - z ≤ y
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x, y, z: R E1: 0 ≤ z E2: x ≤ y
x - z ≤ y
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x, y, z: R E1: 0 ≤ z E2: x ≤ y
- z + x ≤ - z + (y + z)
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x, y, z: R E1: 0 ≤ z E2: x ≤ y
x ≤ y + z
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x, y, z: R E1: 0 ≤ z E2: x ≤ y
y ≤ y + z
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x, y, z: R E1: 0 ≤ z E2: x ≤ y
y + 0 ≤ y + z
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x, y, z: R E1: 0 ≤ z E2: x ≤ y
0 ≤ z
trivial.Qed.
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x, y, z: R
0 ≤ z -> x ≤ y - z -> x ≤ y
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x, y, z: R
0 ≤ z -> x ≤ y - z -> x ≤ y
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x, y, z: R E1: 0 ≤ z E2: x ≤ y - z
x ≤ y
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x, y, z: R E1: 0 ≤ z E2: x ≤ y - z
y - z ≤ y
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x, y, z: R E1: 0 ≤ z E2: x ≤ y - z
y ≤ y
applyreflexivity.Qed.
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x: R
0 ≤ x -> - x ≤ x
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x: R
0 ≤ x -> - x ≤ x
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x: R X: 0 ≤ x
- x ≤ x
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x: R X: 0 ≤ x
- x ≤ 0
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rle: Le R SemiRingOrder0: SemiRingOrder Rle x: R X: 0 ≤ x
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x, y: R
- y < - x <-> x < y
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x, y: R
- y < - x <-> x < y
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x, y: R
forallab : R, a < b -> - b < - a
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x, y: R X: forallab : R, a < b -> - b < - a
- y < - x <-> x < y
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x, y: R
forallab : R, a < b -> - b < - a
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x, y, a, b: R E: a < b
- b < - a
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x, y, a, b: R E: a < b
- a - b + a < - a
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x, y, a, b: R E: a < b
- a - b + a < - a - b + b
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x, y, a, b: R E: a < b
- a - b + b = - a
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x, y, a, b: R E: a < b
- a - b + a < - a - b + b
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x, y, a, b: R E: a < b
a < b
trivial.
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x, y, a, b: R E: a < b
- a - b + b = - a
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x, y, a, b: R E: a < b
- a = - a
reflexivity.
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x, y: R X: forallab : R, a < b -> - b < - a
- y < - x <-> x < y
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x, y: R X: forallab : R, a < b -> - b < - a X0: - y < - x
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x, y: R
y < - x -> x < - y
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x, y: R
y < - x -> x < - y
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x, y: R
(funr : R => r < - x -> x < - y) y
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x, y: R
- - y < - x -> x < - y
apply flip_lt_negate.Qed.
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x, y: R
- x < y -> - y < x
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x, y: R
- x < y -> - y < x
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x, y: R
(funr : R => - x < r -> - y < x) y
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x, y: R
- x < - - y -> - y < x
apply flip_lt_negate.Qed.
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x: R
0 < x <-> - x < 0
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x: R
0 < x <-> - x < 0
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x: R E: 0 < x
- x < 0
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x: R E: - x < 0
0 < x
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x: R E: 0 < x
- x < 0
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x: R E: 0 < x
- x < - 0
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x: R E: 0 < x
- - 0 < - - x
rewrite !involutive;trivial.
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x: R E: - x < 0
0 < x
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x: R E: - x < 0
- x < - 0
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x: R E: - x < 0
- x < 0
trivial.Qed.
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x: R
x < 0 <-> 0 < - x
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x: R
x < 0 <-> 0 < - x
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x: R
- - x < 0 <-> 0 < - x
split; intros; apply flip_pos_negate;trivial.Qed.
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x, y, z: R
z < y - x <-> z + x < y
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x, y, z: R
z < y - x <-> z + x < y
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x, y, z: R E: z < y - x
z + x < y
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x, y, z: R E: z + x < y
z < y - x
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x, y, z: R E: z < y - x
z + x < y
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x, y, z: R E: z < y - x
x + z < x + (y - x)
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x, y, z: R E: z < y - x
z < y - x
trivial.
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x, y, z: R E: z + x < y
z < y - x
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x, y, z: R E: z + x < y
- x + (z + x) < - x + y
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x, y, z: R E: z + x < y
z + x < y
trivial.Qed.
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x, y, z: R
y - x < z <-> y < z + x
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x, y, z: R
y - x < z <-> y < z + x
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x, y, z: R
y - x < z <-> y < z - - x
split; apply flip_lt_minus_r.Qed.
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x, y: R
0 < y - x <-> x < y
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x, y: R
0 < y - x <-> x < y
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x, y: R
0 < y - x <-> 0 + x < y
apply flip_lt_minus_r.Qed.
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x, y: R
y - x < 0 <-> y < x
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x, y: R
y - x < 0 <-> y < x
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x, y: R
y - x < 0 <-> y < 0 + x
apply flip_lt_minus_l.Qed.
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x, y, z: R
0 < z -> x < y -> x - z < y
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x, y, z: R
0 < z -> x < y -> x - z < y
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x, y, z: R E1: 0 < z E2: x < y
x - z < y
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x, y, z: R E1: 0 < z E2: x < y
- z + x < - z + (y + z)
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x, y, z: R E1: 0 < z E2: x < y
x < y + z
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x, y, z: R E1: 0 < z E2: x < y
y < y + z
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x, y, z: R E1: 0 < z E2: x < y
y + 0 < y + z
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x, y, z: R E1: 0 < z E2: x < y
0 < z
trivial.Qed.
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x, z: R
0 < z <-> x - z < x
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x, z: R
0 < z <-> x - z < x
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x, z: R
0 < z <-> x - z < x + 0
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x, z: R X: 0 < z
x - z < x + 0
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x, z: R X: x - z < x + 0
0 < z
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x, z: R X: 0 < z
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x, z: R X: x - z < x + 0
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x, z: R
0 < z <-> - z + x < x
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x, z: R
0 < z <-> - z + x < x
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x, z: R ltz: 0 < z
- z + x < x
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x, z: R ltz: - z + x < x
0 < z
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x, z: R ltz: 0 < z
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x, z: R ltz: - z + x < x
0 < z
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x, z: R ltz: x - z < x
0 < z
apply (snd (pos_minus_lt_compat_r x z)); assumption.Qed.
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x: R
0 < x -> - x < x
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x: R
0 < x -> - x < x
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x: R E: 0 < x
- x < x
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x: R E: 0 < x
- x < 0
R: Type Aplus: Plus R Amult: Mult R Azero: Zero R Aone: One R Anegate: Negate R H: IsCRing R Rlt: Lt R StrictSemiRingOrder0: StrictSemiRingOrder Rlt x: R E: 0 < x
0 < x
trivial.Qed.Endstrict_ring_order.Sectionstrict_ring_apart.Context `{FullPseudoSemiRingOrder R}.Definitionpositive_apart_zero (z : R) (Pz : 0 < z) : z ≶ 0
:= pseudo_order_lt_apart_flip 0 z Pz.Definitionnegative_apart_zero (z : R) (Nz : z < 0) : z ≶ 0
:= pseudo_order_lt_apart z 0 Nz.Endstrict_ring_apart.Sectionanother_ring_order.Context `{IsCRing R1} `{!SemiRingOrder R1le} `{IsCRing R2} `{R2le : Le R2}
`{is_mere_relation R2 R2le}.
R1: Type Aplus: Plus R1 Amult: Mult R1 Azero: Zero R1 Aone: One R1 Anegate: Negate R1 H: IsCRing R1 R1le: Le R1 SemiRingOrder0: SemiRingOrder R1le R2: Type Aplus0: Plus R2 Amult0: Mult R2 Azero0: Zero R2 Aone0: One R2 Anegate0: Negate R2 H0: IsCRing R2 R2le: Le R2 is_mere_relation0: is_mere_relation R2 R2le f: R2 -> R1 IsSemiRingPreserving0: IsSemiRingPreserving f IsInjective0: IsInjective f
(forallxy : R2, x ≤ y <-> f x ≤ f y) ->
SemiRingOrder R2le
R1: Type Aplus: Plus R1 Amult: Mult R1 Azero: Zero R1 Aone: One R1 Anegate: Negate R1 H: IsCRing R1 R1le: Le R1 SemiRingOrder0: SemiRingOrder R1le R2: Type Aplus0: Plus R2 Amult0: Mult R2 Azero0: Zero R2 Aone0: One R2 Anegate0: Negate R2 H0: IsCRing R2 R2le: Le R2 is_mere_relation0: is_mere_relation R2 R2le f: R2 -> R1 IsSemiRingPreserving0: IsSemiRingPreserving f IsInjective0: IsInjective f
(forallxy : R2, x ≤ y <-> f x ≤ f y) ->
SemiRingOrder R2le
R1: Type Aplus: Plus R1 Amult: Mult R1 Azero: Zero R1 Aone: One R1 Anegate: Negate R1 H: IsCRing R1 R1le: Le R1 SemiRingOrder0: SemiRingOrder R1le R2: Type Aplus0: Plus R2 Amult0: Mult R2 Azero0: Zero R2 Aone0: One R2 Anegate0: Negate R2 H0: IsCRing R2 R2le: Le R2 is_mere_relation0: is_mere_relation R2 R2le f: R2 -> R1 IsSemiRingPreserving0: IsSemiRingPreserving f IsInjective0: IsInjective f P: forallxy : R2, x ≤ y <-> f x ≤ f y
SemiRingOrder R2le
R1: Type Aplus: Plus R1 Amult: Mult R1 Azero: Zero R1 Aone: One R1 Anegate: Negate R1 H: IsCRing R1 R1le: Le R1 SemiRingOrder0: SemiRingOrder R1le R2: Type Aplus0: Plus R2 Amult0: Mult R2 Azero0: Zero R2 Aone0: One R2 Anegate0: Negate R2 H0: IsCRing R2 R2le: Le R2 is_mere_relation0: is_mere_relation R2 R2le f: R2 -> R1 IsSemiRingPreserving0: IsSemiRingPreserving f IsInjective0: IsInjective f P: forallxy : R2, x ≤ y <-> f x ≤ f y
forallxy : R2, x ≤ y -> {z : R2 & y = x + z}
R1: Type Aplus: Plus R1 Amult: Mult R1 Azero: Zero R1 Aone: One R1 Anegate: Negate R1 H: IsCRing R1 R1le: Le R1 SemiRingOrder0: SemiRingOrder R1le R2: Type Aplus0: Plus R2 Amult0: Mult R2 Azero0: Zero R2 Aone0: One R2 Anegate0: Negate R2 H0: IsCRing R2 R2le: Le R2 is_mere_relation0: is_mere_relation R2 R2le f: R2 -> R1 IsSemiRingPreserving0: IsSemiRingPreserving f IsInjective0: IsInjective f P: forallxy : R2, x ≤ y <-> f x ≤ f y x, y: R2 E: x ≤ y
{z : R2 & y = x + z}
R1: Type Aplus: Plus R1 Amult: Mult R1 Azero: Zero R1 Aone: One R1 Anegate: Negate R1 H: IsCRing R1 R1le: Le R1 SemiRingOrder0: SemiRingOrder R1le R2: Type Aplus0: Plus R2 Amult0: Mult R2 Azero0: Zero R2 Aone0: One R2 Anegate0: Negate R2 H0: IsCRing R2 R2le: Le R2 is_mere_relation0: is_mere_relation R2 R2le f: R2 -> R1 IsSemiRingPreserving0: IsSemiRingPreserving f IsInjective0: IsInjective f P: forallxy : R2, x ≤ y <-> f x ≤ f y x, y: R2 E: x ≤ y
y = x + (- x + y)
R1: Type Aplus: Plus R1 Amult: Mult R1 Azero: Zero R1 Aone: One R1 Anegate: Negate R1 H: IsCRing R1 R1le: Le R1 SemiRingOrder0: SemiRingOrder R1le R2: Type Aplus0: Plus R2 Amult0: Mult R2 Azero0: Zero R2 Aone0: One R2 Anegate0: Negate R2 H0: IsCRing R2 R2le: Le R2 is_mere_relation0: is_mere_relation R2 R2le f: R2 -> R1 IsSemiRingPreserving0: IsSemiRingPreserving f IsInjective0: IsInjective f P: forallxy : R2, x ≤ y <-> f x ≤ f y x, y: R2 E: x ≤ y
R1: Type Aplus: Plus R1 Amult: Mult R1 Azero: Zero R1 Aone: One R1 Anegate: Negate R1 H: IsCRing R1 R1le: Le R1 SemiRingOrder0: SemiRingOrder R1le R2: Type Aplus0: Plus R2 Amult0: Mult R2 Azero0: Zero R2 Aone0: One R2 Anegate0: Negate R2 H0: IsCRing R2 R2le: Le R2 is_mere_relation0: is_mere_relation R2 R2le SemiRingOrder1: SemiRingOrder R2le f: R1 -> R2 IsSemiRingPreserving0: IsSemiRingPreserving f
(forallx : R1, 0 ≤ f x -> 0 ≤ x) -> OrderReflecting f
R1: Type Aplus: Plus R1 Amult: Mult R1 Azero: Zero R1 Aone: One R1 Anegate: Negate R1 H: IsCRing R1 R1le: Le R1 SemiRingOrder0: SemiRingOrder R1le R2: Type Aplus0: Plus R2 Amult0: Mult R2 Azero0: Zero R2 Aone0: One R2 Anegate0: Negate R2 H0: IsCRing R2 R2le: Le R2 is_mere_relation0: is_mere_relation R2 R2le SemiRingOrder1: SemiRingOrder R2le f: R1 -> R2 IsSemiRingPreserving0: IsSemiRingPreserving f
(forallx : R1, 0 ≤ f x -> 0 ≤ x) -> OrderReflecting f
R1: Type Aplus: Plus R1 Amult: Mult R1 Azero: Zero R1 Aone: One R1 Anegate: Negate R1 H: IsCRing R1 R1le: Le R1 SemiRingOrder0: SemiRingOrder R1le R2: Type Aplus0: Plus R2 Amult0: Mult R2 Azero0: Zero R2 Aone0: One R2 Anegate0: Negate R2 H0: IsCRing R2 R2le: Le R2 is_mere_relation0: is_mere_relation R2 R2le SemiRingOrder1: SemiRingOrder R2le f: R1 -> R2 IsSemiRingPreserving0: IsSemiRingPreserving f E: forallx : R1, 0 ≤ f x -> 0 ≤ x
OrderReflecting f
R1: Type Aplus: Plus R1 Amult: Mult R1 Azero: Zero R1 Aone: One R1 Anegate: Negate R1 H: IsCRing R1 R1le: Le R1 SemiRingOrder0: SemiRingOrder R1le R2: Type Aplus0: Plus R2 Amult0: Mult R2 Azero0: Zero R2 Aone0: One R2 Anegate0: Negate R2 H0: IsCRing R2 R2le: Le R2 is_mere_relation0: is_mere_relation R2 R2le SemiRingOrder1: SemiRingOrder R2le f: R1 -> R2 IsSemiRingPreserving0: IsSemiRingPreserving f E: forallx : R1, 0 ≤ f x -> 0 ≤ x
OrderReflecting f
R1: Type Aplus: Plus R1 Amult: Mult R1 Azero: Zero R1 Aone: One R1 Anegate: Negate R1 H: IsCRing R1 R1le: Le R1 SemiRingOrder0: SemiRingOrder R1le R2: Type Aplus0: Plus R2 Amult0: Mult R2 Azero0: Zero R2 Aone0: One R2 Anegate0: Negate R2 H0: IsCRing R2 R2le: Le R2 is_mere_relation0: is_mere_relation R2 R2le SemiRingOrder1: SemiRingOrder R2le f: R1 -> R2 IsSemiRingPreserving0: IsSemiRingPreserving f E: forallx : R1, 0 ≤ f x -> 0 ≤ x x, y: R1 F: f x ≤ f y
x ≤ y
R1: Type Aplus: Plus R1 Amult: Mult R1 Azero: Zero R1 Aone: One R1 Anegate: Negate R1 H: IsCRing R1 R1le: Le R1 SemiRingOrder0: SemiRingOrder R1le R2: Type Aplus0: Plus R2 Amult0: Mult R2 Azero0: Zero R2 Aone0: One R2 Anegate0: Negate R2 H0: IsCRing R2 R2le: Le R2 is_mere_relation0: is_mere_relation R2 R2le SemiRingOrder1: SemiRingOrder R2le f: R1 -> R2 IsSemiRingPreserving0: IsSemiRingPreserving f E: forallx : R1, 0 ≤ f x -> 0 ≤ x x, y: R1 F: f x ≤ f y
0 ≤ f (y - x)
R1: Type Aplus: Plus R1 Amult: Mult R1 Azero: Zero R1 Aone: One R1 Anegate: Negate R1 H: IsCRing R1 R1le: Le R1 SemiRingOrder0: SemiRingOrder R1le R2: Type Aplus0: Plus R2 Amult0: Mult R2 Azero0: Zero R2 Aone0: One R2 Anegate0: Negate R2 H0: IsCRing R2 R2le: Le R2 is_mere_relation0: is_mere_relation R2 R2le SemiRingOrder1: SemiRingOrder R2le f: R1 -> R2 IsSemiRingPreserving0: IsSemiRingPreserving f E: forallx : R1, 0 ≤ f x -> 0 ≤ x x, y: R1 F: f x ≤ f y
0 ≤ f y - f x
apply (flip_nonneg_minus (f x)), F.Qed.
R1: Type Aplus: Plus R1 Amult: Mult R1 Azero: Zero R1 Aone: One R1 Anegate: Negate R1 H: IsCRing R1 R1le: Le R1 SemiRingOrder0: SemiRingOrder R1le R2: Type Aplus0: Plus R2 Amult0: Mult R2 Azero0: Zero R2 Aone0: One R2 Anegate0: Negate R2 H0: IsCRing R2 R2le: Le R2 is_mere_relation0: is_mere_relation R2 R2le SemiRingOrder1: SemiRingOrder R2le f: R1 -> R2 IsSemiRingPreserving0: IsSemiRingPreserving f OrderPreserving0: OrderPreserving f x: R1
-1 ≤ x -> -1 ≤ f x
R1: Type Aplus: Plus R1 Amult: Mult R1 Azero: Zero R1 Aone: One R1 Anegate: Negate R1 H: IsCRing R1 R1le: Le R1 SemiRingOrder0: SemiRingOrder R1le R2: Type Aplus0: Plus R2 Amult0: Mult R2 Azero0: Zero R2 Aone0: One R2 Anegate0: Negate R2 H0: IsCRing R2 R2le: Le R2 is_mere_relation0: is_mere_relation R2 R2le SemiRingOrder1: SemiRingOrder R2le f: R1 -> R2 IsSemiRingPreserving0: IsSemiRingPreserving f OrderPreserving0: OrderPreserving f x: R1
-1 ≤ x -> -1 ≤ f x
R1: Type Aplus: Plus R1 Amult: Mult R1 Azero: Zero R1 Aone: One R1 Anegate: Negate R1 H: IsCRing R1 R1le: Le R1 SemiRingOrder0: SemiRingOrder R1le R2: Type Aplus0: Plus R2 Amult0: Mult R2 Azero0: Zero R2 Aone0: One R2 Anegate0: Negate R2 H0: IsCRing R2 R2le: Le R2 is_mere_relation0: is_mere_relation R2 R2le SemiRingOrder1: SemiRingOrder R2le f: R1 -> R2 IsSemiRingPreserving0: IsSemiRingPreserving f OrderPreserving0: OrderPreserving f x: R1 X: -1 ≤ x
-1 ≤ f x
R1: Type Aplus: Plus R1 Amult: Mult R1 Azero: Zero R1 Aone: One R1 Anegate: Negate R1 H: IsCRing R1 R1le: Le R1 SemiRingOrder0: SemiRingOrder R1le R2: Type Aplus0: Plus R2 Amult0: Mult R2 Azero0: Zero R2 Aone0: One R2 Anegate0: Negate R2 H0: IsCRing R2 R2le: Le R2 is_mere_relation0: is_mere_relation R2 R2le SemiRingOrder1: SemiRingOrder R2le f: R1 -> R2 IsSemiRingPreserving0: IsSemiRingPreserving f OrderPreserving0: OrderPreserving f x: R1 X: -1 ≤ x
f (-1) ≤ f x
R1: Type Aplus: Plus R1 Amult: Mult R1 Azero: Zero R1 Aone: One R1 Anegate: Negate R1 H: IsCRing R1 R1le: Le R1 SemiRingOrder0: SemiRingOrder R1le R2: Type Aplus0: Plus R2 Amult0: Mult R2 Azero0: Zero R2 Aone0: One R2 Anegate0: Negate R2 H0: IsCRing R2 R2le: Le R2 is_mere_relation0: is_mere_relation R2 R2le SemiRingOrder1: SemiRingOrder R2le f: R1 -> R2 IsSemiRingPreserving0: IsSemiRingPreserving f OrderPreserving0: OrderPreserving f x: R1 X: -1 ≤ x
-1 ≤ x
trivial.Qed.
R1: Type Aplus: Plus R1 Amult: Mult R1 Azero: Zero R1 Aone: One R1 Anegate: Negate R1 H: IsCRing R1 R1le: Le R1 SemiRingOrder0: SemiRingOrder R1le R2: Type Aplus0: Plus R2 Amult0: Mult R2 Azero0: Zero R2 Aone0: One R2 Anegate0: Negate R2 H0: IsCRing R2 R2le: Le R2 is_mere_relation0: is_mere_relation R2 R2le SemiRingOrder1: SemiRingOrder R2le f: R1 -> R2 IsSemiRingPreserving0: IsSemiRingPreserving f OrderPreserving0: OrderPreserving f x: R1
x ≤ -1 -> f x ≤ -1
R1: Type Aplus: Plus R1 Amult: Mult R1 Azero: Zero R1 Aone: One R1 Anegate: Negate R1 H: IsCRing R1 R1le: Le R1 SemiRingOrder0: SemiRingOrder R1le R2: Type Aplus0: Plus R2 Amult0: Mult R2 Azero0: Zero R2 Aone0: One R2 Anegate0: Negate R2 H0: IsCRing R2 R2le: Le R2 is_mere_relation0: is_mere_relation R2 R2le SemiRingOrder1: SemiRingOrder R2le f: R1 -> R2 IsSemiRingPreserving0: IsSemiRingPreserving f OrderPreserving0: OrderPreserving f x: R1
x ≤ -1 -> f x ≤ -1
R1: Type Aplus: Plus R1 Amult: Mult R1 Azero: Zero R1 Aone: One R1 Anegate: Negate R1 H: IsCRing R1 R1le: Le R1 SemiRingOrder0: SemiRingOrder R1le R2: Type Aplus0: Plus R2 Amult0: Mult R2 Azero0: Zero R2 Aone0: One R2 Anegate0: Negate R2 H0: IsCRing R2 R2le: Le R2 is_mere_relation0: is_mere_relation R2 R2le SemiRingOrder1: SemiRingOrder R2le f: R1 -> R2 IsSemiRingPreserving0: IsSemiRingPreserving f OrderPreserving0: OrderPreserving f x: R1 X: x ≤ -1
f x ≤ -1
R1: Type Aplus: Plus R1 Amult: Mult R1 Azero: Zero R1 Aone: One R1 Anegate: Negate R1 H: IsCRing R1 R1le: Le R1 SemiRingOrder0: SemiRingOrder R1le R2: Type Aplus0: Plus R2 Amult0: Mult R2 Azero0: Zero R2 Aone0: One R2 Anegate0: Negate R2 H0: IsCRing R2 R2le: Le R2 is_mere_relation0: is_mere_relation R2 R2le SemiRingOrder1: SemiRingOrder R2le f: R1 -> R2 IsSemiRingPreserving0: IsSemiRingPreserving f OrderPreserving0: OrderPreserving f x: R1 X: x ≤ -1
f x ≤ f (-1)
R1: Type Aplus: Plus R1 Amult: Mult R1 Azero: Zero R1 Aone: One R1 Anegate: Negate R1 H: IsCRing R1 R1le: Le R1 SemiRingOrder0: SemiRingOrder R1le R2: Type Aplus0: Plus R2 Amult0: Mult R2 Azero0: Zero R2 Aone0: One R2 Anegate0: Negate R2 H0: IsCRing R2 R2le: Le R2 is_mere_relation0: is_mere_relation R2 R2le SemiRingOrder1: SemiRingOrder R2le f: R1 -> R2 IsSemiRingPreserving0: IsSemiRingPreserving f OrderPreserving0: OrderPreserving f x: R1 X: x ≤ -1
R1: Type Aplus: Plus R1 Amult: Mult R1 Azero: Zero R1 Aone: One R1 Anegate: Negate R1 H: IsCRing R1 R1lt: Lt R1 StrictSemiRingOrder0: StrictSemiRingOrder R1lt R2: Type Aplus0: Plus R2 Amult0: Mult R2 Azero0: Zero R2 Aone0: One R2 Anegate0: Negate R2 H0: IsCRing R2 R2lt: Lt R2 is_mere_relation0: is_mere_relation R2 lt f: R2 -> R1 IsSemiRingPreserving0: IsSemiRingPreserving f
(forallxy : R2, x < y <-> f x < f y) ->
StrictSemiRingOrder R2lt
R1: Type Aplus: Plus R1 Amult: Mult R1 Azero: Zero R1 Aone: One R1 Anegate: Negate R1 H: IsCRing R1 R1lt: Lt R1 StrictSemiRingOrder0: StrictSemiRingOrder R1lt R2: Type Aplus0: Plus R2 Amult0: Mult R2 Azero0: Zero R2 Aone0: One R2 Anegate0: Negate R2 H0: IsCRing R2 R2lt: Lt R2 is_mere_relation0: is_mere_relation R2 lt f: R2 -> R1 IsSemiRingPreserving0: IsSemiRingPreserving f
(forallxy : R2, x < y <-> f x < f y) ->
StrictSemiRingOrder R2lt
R1: Type Aplus: Plus R1 Amult: Mult R1 Azero: Zero R1 Aone: One R1 Anegate: Negate R1 H: IsCRing R1 R1lt: Lt R1 StrictSemiRingOrder0: StrictSemiRingOrder R1lt R2: Type Aplus0: Plus R2 Amult0: Mult R2 Azero0: Zero R2 Aone0: One R2 Anegate0: Negate R2 H0: IsCRing R2 R2lt: Lt R2 is_mere_relation0: is_mere_relation R2 lt f: R2 -> R1 IsSemiRingPreserving0: IsSemiRingPreserving f P: forallxy : R2, x < y <-> f x < f y
StrictSemiRingOrder R2lt
R1: Type Aplus: Plus R1 Amult: Mult R1 Azero: Zero R1 Aone: One R1 Anegate: Negate R1 H: IsCRing R1 R1lt: Lt R1 StrictSemiRingOrder0: StrictSemiRingOrder R1lt R2: Type Aplus0: Plus R2 Amult0: Mult R2 Azero0: Zero R2 Aone0: One R2 Anegate0: Negate R2 H0: IsCRing R2 R2lt: Lt R2 is_mere_relation0: is_mere_relation R2 lt f: R2 -> R1 IsSemiRingPreserving0: IsSemiRingPreserving f P: forallxy : R2, x < y <-> f x < f y X: StrictOrder R2lt
StrictSemiRingOrder R2lt
R1: Type Aplus: Plus R1 Amult: Mult R1 Azero: Zero R1 Aone: One R1 Anegate: Negate R1 H: IsCRing R1 R1lt: Lt R1 StrictSemiRingOrder0: StrictSemiRingOrder R1lt R2: Type Aplus0: Plus R2 Amult0: Mult R2 Azero0: Zero R2 Aone0: One R2 Anegate0: Negate R2 H0: IsCRing R2 R2lt: Lt R2 is_mere_relation0: is_mere_relation R2 lt f: R2 -> R1 IsSemiRingPreserving0: IsSemiRingPreserving f P: forallxy : R2, x < y <-> f x < f y X: StrictOrder R2lt
forallz : R2, StrictlyOrderPreserving (plus z)
R1: Type Aplus: Plus R1 Amult: Mult R1 Azero: Zero R1 Aone: One R1 Anegate: Negate R1 H: IsCRing R1 R1lt: Lt R1 StrictSemiRingOrder0: StrictSemiRingOrder R1lt R2: Type Aplus0: Plus R2 Amult0: Mult R2 Azero0: Zero R2 Aone0: One R2 Anegate0: Negate R2 H0: IsCRing R2 R2lt: Lt R2 is_mere_relation0: is_mere_relation R2 lt f: R2 -> R1 IsSemiRingPreserving0: IsSemiRingPreserving f P: forallxy : R2, x < y <-> f x < f y X: StrictOrder R2lt
R1: Type Aplus: Plus R1 Amult: Mult R1 Azero: Zero R1 Aone: One R1 Anegate: Negate R1 H: IsCRing R1 R1lt: Lt R1 StrictSemiRingOrder0: StrictSemiRingOrder R1lt R2: Type Aplus0: Plus R2 Amult0: Mult R2 Azero0: Zero R2 Aone0: One R2 Anegate0: Negate R2 H0: IsCRing R2 R2lt: Lt R2 is_mere_relation0: is_mere_relation R2 lt f: R2 -> R1 IsSemiRingPreserving0: IsSemiRingPreserving f P: forallxy : R2, x < y <-> f x < f y X: StrictOrder R2lt
forallz : R2, StrictlyOrderPreserving (plus z)
R1: Type Aplus: Plus R1 Amult: Mult R1 Azero: Zero R1 Aone: One R1 Anegate: Negate R1 H: IsCRing R1 R1lt: Lt R1 StrictSemiRingOrder0: StrictSemiRingOrder R1lt R2: Type Aplus0: Plus R2 Amult0: Mult R2 Azero0: Zero R2 Aone0: One R2 Anegate0: Negate R2 H0: IsCRing R2 R2lt: Lt R2 is_mere_relation0: is_mere_relation R2 lt f: R2 -> R1 IsSemiRingPreserving0: IsSemiRingPreserving f P: forallxy : R2, x < y <-> f x < f y X: StrictOrder R2lt z, x, y: R2 E: x < y
z + x < z + y
R1: Type Aplus: Plus R1 Amult: Mult R1 Azero: Zero R1 Aone: One R1 Anegate: Negate R1 H: IsCRing R1 R1lt: Lt R1 StrictSemiRingOrder0: StrictSemiRingOrder R1lt R2: Type Aplus0: Plus R2 Amult0: Mult R2 Azero0: Zero R2 Aone0: One R2 Anegate0: Negate R2 H0: IsCRing R2 R2lt: Lt R2 is_mere_relation0: is_mere_relation R2 lt f: R2 -> R1 IsSemiRingPreserving0: IsSemiRingPreserving f P: forallxy : R2, x < y <-> f x < f y X: StrictOrder R2lt z, x, y: R2 E: x < y
f (z + x) < f (z + y)
R1: Type Aplus: Plus R1 Amult: Mult R1 Azero: Zero R1 Aone: One R1 Anegate: Negate R1 H: IsCRing R1 R1lt: Lt R1 StrictSemiRingOrder0: StrictSemiRingOrder R1lt R2: Type Aplus0: Plus R2 Amult0: Mult R2 Azero0: Zero R2 Aone0: One R2 Anegate0: Negate R2 H0: IsCRing R2 R2lt: Lt R2 is_mere_relation0: is_mere_relation R2 lt f: R2 -> R1 IsSemiRingPreserving0: IsSemiRingPreserving f P: forallxy : R2, x < y <-> f x < f y X: StrictOrder R2lt z, x, y: R2 E: x < y
f z + f x < f z + f y
R1: Type Aplus: Plus R1 Amult: Mult R1 Azero: Zero R1 Aone: One R1 Anegate: Negate R1 H: IsCRing R1 R1lt: Lt R1 StrictSemiRingOrder0: StrictSemiRingOrder R1lt R2: Type Aplus0: Plus R2 Amult0: Mult R2 Azero0: Zero R2 Aone0: One R2 Anegate0: Negate R2 H0: IsCRing R2 R2lt: Lt R2 is_mere_relation0: is_mere_relation R2 lt f: R2 -> R1 IsSemiRingPreserving0: IsSemiRingPreserving f P: forallxy : R2, x < y <-> f x < f y X: StrictOrder R2lt z, x, y: R2 E: x < y
x < y
trivial.
R1: Type Aplus: Plus R1 Amult: Mult R1 Azero: Zero R1 Aone: One R1 Anegate: Negate R1 H: IsCRing R1 R1lt: Lt R1 StrictSemiRingOrder0: StrictSemiRingOrder R1lt R2: Type Aplus0: Plus R2 Amult0: Mult R2 Azero0: Zero R2 Aone0: One R2 Anegate0: Negate R2 H0: IsCRing R2 R2lt: Lt R2 is_mere_relation0: is_mere_relation R2 lt f: R2 -> R1 IsSemiRingPreserving0: IsSemiRingPreserving f P: forallxy : R2, x < y <-> f x < f y X: StrictOrder R2lt
R1: Type Aplus: Plus R1 Amult: Mult R1 Azero: Zero R1 Aone: One R1 Anegate: Negate R1 H: IsCRing R1 H0: Apart R1 R1lt: Lt R1 PseudoSemiRingOrder0: PseudoSemiRingOrder R1lt R2: Type Aplus0: Plus R2 Amult0: Mult R2 Azero0: Zero R2 Aone0: One R2 Anegate0: Negate R2 H1: IsCRing R2 Aap: Apart R2 H2: IsApart R2 R2lt: Lt R2 is_mere_relation0: is_mere_relation R2 lt f: R2 -> R1 IsSemiRingPreserving0: IsSemiRingPreserving f IsStrongInjective0: IsStrongInjective f
(forallxy : R2, x < y <-> f x < f y) ->
PseudoSemiRingOrder R2lt
R1: Type Aplus: Plus R1 Amult: Mult R1 Azero: Zero R1 Aone: One R1 Anegate: Negate R1 H: IsCRing R1 H0: Apart R1 R1lt: Lt R1 PseudoSemiRingOrder0: PseudoSemiRingOrder R1lt R2: Type Aplus0: Plus R2 Amult0: Mult R2 Azero0: Zero R2 Aone0: One R2 Anegate0: Negate R2 H1: IsCRing R2 Aap: Apart R2 H2: IsApart R2 R2lt: Lt R2 is_mere_relation0: is_mere_relation R2 lt f: R2 -> R1 IsSemiRingPreserving0: IsSemiRingPreserving f IsStrongInjective0: IsStrongInjective f
(forallxy : R2, x < y <-> f x < f y) ->
PseudoSemiRingOrder R2lt
R1: Type Aplus: Plus R1 Amult: Mult R1 Azero: Zero R1 Aone: One R1 Anegate: Negate R1 H: IsCRing R1 H0: Apart R1 R1lt: Lt R1 PseudoSemiRingOrder0: PseudoSemiRingOrder R1lt R2: Type Aplus0: Plus R2 Amult0: Mult R2 Azero0: Zero R2 Aone0: One R2 Anegate0: Negate R2 H1: IsCRing R2 Aap: Apart R2 H2: IsApart R2 R2lt: Lt R2 is_mere_relation0: is_mere_relation R2 lt f: R2 -> R1 IsSemiRingPreserving0: IsSemiRingPreserving f IsStrongInjective0: IsStrongInjective f P: forallxy : R2, x < y <-> f x < f y
PseudoSemiRingOrder R2lt
R1: Type Aplus: Plus R1 Amult: Mult R1 Azero: Zero R1 Aone: One R1 Anegate: Negate R1 H: IsCRing R1 H0: Apart R1 R1lt: Lt R1 PseudoSemiRingOrder0: PseudoSemiRingOrder R1lt R2: Type Aplus0: Plus R2 Amult0: Mult R2 Azero0: Zero R2 Aone0: One R2 Anegate0: Negate R2 H1: IsCRing R2 Aap: Apart R2 H2: IsApart R2 R2lt: Lt R2 is_mere_relation0: is_mere_relation R2 lt f: R2 -> R1 IsSemiRingPreserving0: IsSemiRingPreserving f IsStrongInjective0: IsStrongInjective f P: forallxy : R2, x < y <-> f x < f y X: PseudoOrder R2lt
PseudoSemiRingOrder R2lt
R1: Type Aplus: Plus R1 Amult: Mult R1 Azero: Zero R1 Aone: One R1 Anegate: Negate R1 H: IsCRing R1 H0: Apart R1 R1lt: Lt R1 PseudoSemiRingOrder0: PseudoSemiRingOrder R1lt R2: Type Aplus0: Plus R2 Amult0: Mult R2 Azero0: Zero R2 Aone0: One R2 Anegate0: Negate R2 H1: IsCRing R2 Aap: Apart R2 H2: IsApart R2 R2lt: Lt R2 is_mere_relation0: is_mere_relation R2 lt f: R2 -> R1 IsSemiRingPreserving0: IsSemiRingPreserving f IsStrongInjective0: IsStrongInjective f P: forallxy : R2, x < y <-> f x < f y X: PseudoOrder R2lt X0: StrictSemiRingOrder R2lt
PseudoSemiRingOrder R2lt
R1: Type Aplus: Plus R1 Amult: Mult R1 Azero: Zero R1 Aone: One R1 Anegate: Negate R1 H: IsCRing R1 H0: Apart R1 R1lt: Lt R1 PseudoSemiRingOrder0: PseudoSemiRingOrder R1lt R2: Type Aplus0: Plus R2 Amult0: Mult R2 Azero0: Zero R2 Aone0: One R2 Anegate0: Negate R2 H1: IsCRing R2 Aap: Apart R2 H2: IsApart R2 R2lt: Lt R2 is_mere_relation0: is_mere_relation R2 lt f: R2 -> R1 IsSemiRingPreserving0: IsSemiRingPreserving f IsStrongInjective0: IsStrongInjective f P: forallxy : R2, x < y <-> f x < f y X: PseudoOrder R2lt X0: StrictSemiRingOrder R2lt
StrongBinaryExtensionality mult
R1: Type Aplus: Plus R1 Amult: Mult R1 Azero: Zero R1 Aone: One R1 Anegate: Negate R1 H: IsCRing R1 H0: Apart R1 R1lt: Lt R1 PseudoSemiRingOrder0: PseudoSemiRingOrder R1lt R2: Type Aplus0: Plus R2 Amult0: Mult R2 Azero0: Zero R2 Aone0: One R2 Anegate0: Negate R2 H1: IsCRing R2 Aap: Apart R2 H2: IsApart R2 R2lt: Lt R2 is_mere_relation0: is_mere_relation R2 lt f: R2 -> R1 IsSemiRingPreserving0: IsSemiRingPreserving f IsStrongInjective0: IsStrongInjective f P: forallxy : R2, x < y <-> f x < f y X: PseudoOrder R2lt X0: StrictSemiRingOrder R2lt X1: IsApart R1
StrongBinaryExtensionality mult
R1: Type Aplus: Plus R1 Amult: Mult R1 Azero: Zero R1 Aone: One R1 Anegate: Negate R1 H: IsCRing R1 H0: Apart R1 R1lt: Lt R1 PseudoSemiRingOrder0: PseudoSemiRingOrder R1lt R2: Type Aplus0: Plus R2 Amult0: Mult R2 Azero0: Zero R2 Aone0: One R2 Anegate0: Negate R2 H1: IsCRing R2 Aap: Apart R2 H2: IsApart R2 R2lt: Lt R2 is_mere_relation0: is_mere_relation R2 lt f: R2 -> R1 IsSemiRingPreserving0: IsSemiRingPreserving f IsStrongInjective0: IsStrongInjective f P: forallxy : R2, x < y <-> f x < f y X: PseudoOrder R2lt X0: StrictSemiRingOrder R2lt X1: IsApart R1 X2: IsApart R2
StrongBinaryExtensionality mult
R1: Type Aplus: Plus R1 Amult: Mult R1 Azero: Zero R1 Aone: One R1 Anegate: Negate R1 H: IsCRing R1 H0: Apart R1 R1lt: Lt R1 PseudoSemiRingOrder0: PseudoSemiRingOrder R1lt R2: Type Aplus0: Plus R2 Amult0: Mult R2 Azero0: Zero R2 Aone0: One R2 Anegate0: Negate R2 H1: IsCRing R2 Aap: Apart R2 H2: IsApart R2 R2lt: Lt R2 is_mere_relation0: is_mere_relation R2 lt f: R2 -> R1 IsSemiRingPreserving0: IsSemiRingPreserving f IsStrongInjective0: IsStrongInjective f P: forallxy : R2, x < y <-> f x < f y X: PseudoOrder R2lt X0: StrictSemiRingOrder R2lt X1: IsApart R1 X2: IsApart R2 X3: StrongExtensionality f
StrongBinaryExtensionality mult
R1: Type Aplus: Plus R1 Amult: Mult R1 Azero: Zero R1 Aone: One R1 Anegate: Negate R1 H: IsCRing R1 H0: Apart R1 R1lt: Lt R1 PseudoSemiRingOrder0: PseudoSemiRingOrder R1lt R2: Type Aplus0: Plus R2 Amult0: Mult R2 Azero0: Zero R2 Aone0: One R2 Anegate0: Negate R2 H1: IsCRing R2 Aap: Apart R2 H2: IsApart R2 R2lt: Lt R2 is_mere_relation0: is_mere_relation R2 lt f: R2 -> R1 IsSemiRingPreserving0: IsSemiRingPreserving f IsStrongInjective0: IsStrongInjective f P: forallxy : R2, x < y <-> f x < f y X: PseudoOrder R2lt X0: StrictSemiRingOrder R2lt X1: IsApart R1 X2: IsApart R2 X3: StrongExtensionality f
StrongBinaryExtensionality mult
R1: Type Aplus: Plus R1 Amult: Mult R1 Azero: Zero R1 Aone: One R1 Anegate: Negate R1 H: IsCRing R1 H0: Apart R1 R1lt: Lt R1 PseudoSemiRingOrder0: PseudoSemiRingOrder R1lt R2: Type Aplus0: Plus R2 Amult0: Mult R2 Azero0: Zero R2 Aone0: One R2 Anegate0: Negate R2 H1: IsCRing R2 Aap: Apart R2 H2: IsApart R2 R2lt: Lt R2 is_mere_relation0: is_mere_relation R2 lt f: R2 -> R1 IsSemiRingPreserving0: IsSemiRingPreserving f IsStrongInjective0: IsStrongInjective f P: forallxy : R2, x < y <-> f x < f y X: PseudoOrder R2lt X0: StrictSemiRingOrder R2lt X1: IsApart R1 X2: IsApart R2 X3: StrongExtensionality f x₁, y₁, x₂, y₂: R2 E: x₁ * y₁ ≶ x₂ * y₂
hor (x₁ ≶ x₂) (y₁ ≶ y₂)
R1: Type Aplus: Plus R1 Amult: Mult R1 Azero: Zero R1 Aone: One R1 Anegate: Negate R1 H: IsCRing R1 H0: Apart R1 R1lt: Lt R1 PseudoSemiRingOrder0: PseudoSemiRingOrder R1lt R2: Type Aplus0: Plus R2 Amult0: Mult R2 Azero0: Zero R2 Aone0: One R2 Anegate0: Negate R2 H1: IsCRing R2 Aap: Apart R2 H2: IsApart R2 R2lt: Lt R2 is_mere_relation0: is_mere_relation R2 lt f: R2 -> R1 IsSemiRingPreserving0: IsSemiRingPreserving f IsStrongInjective0: IsStrongInjective f P: forallxy : R2, x < y <-> f x < f y X: PseudoOrder R2lt X0: StrictSemiRingOrder R2lt X1: IsApart R1 X2: IsApart R2 X3: StrongExtensionality f x₁, y₁, x₂, y₂: R2 E: f (x₁ * y₁) ≶ f (x₂ * y₂)
hor (x₁ ≶ x₂) (y₁ ≶ y₂)
R1: Type Aplus: Plus R1 Amult: Mult R1 Azero: Zero R1 Aone: One R1 Anegate: Negate R1 H: IsCRing R1 H0: Apart R1 R1lt: Lt R1 PseudoSemiRingOrder0: PseudoSemiRingOrder R1lt R2: Type Aplus0: Plus R2 Amult0: Mult R2 Azero0: Zero R2 Aone0: One R2 Anegate0: Negate R2 H1: IsCRing R2 Aap: Apart R2 H2: IsApart R2 R2lt: Lt R2 is_mere_relation0: is_mere_relation R2 lt f: R2 -> R1 IsSemiRingPreserving0: IsSemiRingPreserving f IsStrongInjective0: IsStrongInjective f P: forallxy : R2, x < y <-> f x < f y X: PseudoOrder R2lt X0: StrictSemiRingOrder R2lt X1: IsApart R1 X2: IsApart R2 X3: StrongExtensionality f x₁, y₁, x₂, y₂: R2 E: f x₁ * f y₁ ≶ f x₂ * f y₂
R1: Type Aplus: Plus R1 Amult: Mult R1 Azero: Zero R1 Aone: One R1 Anegate: Negate R1 H: IsCRing R1 H0: Apart R1 R1le: Le R1 R1lt: Lt R1 FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder
R1le R1lt R2: Type Aplus0: Plus R2 Amult0: Mult R2 Azero0: Zero R2 Aone0: One R2 Anegate0: Negate R2 H1: IsCRing R2 Aap: Apart R2 H2: IsApart R2 R2le: Le R2 R2lt: Lt R2 is_mere_relation0: is_mere_relation R2 le is_mere_relation1: is_mere_relation R2 lt f: R2 -> R1 IsSemiRingPreserving0: IsSemiRingPreserving f IsStrongInjective0: IsStrongInjective f
(forallxy : R2, x ≤ y <-> f x ≤ f y) ->
(forallxy : R2, x < y <-> f x < f y) ->
FullPseudoSemiRingOrder R2le R2lt
R1: Type Aplus: Plus R1 Amult: Mult R1 Azero: Zero R1 Aone: One R1 Anegate: Negate R1 H: IsCRing R1 H0: Apart R1 R1le: Le R1 R1lt: Lt R1 FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder
R1le R1lt R2: Type Aplus0: Plus R2 Amult0: Mult R2 Azero0: Zero R2 Aone0: One R2 Anegate0: Negate R2 H1: IsCRing R2 Aap: Apart R2 H2: IsApart R2 R2le: Le R2 R2lt: Lt R2 is_mere_relation0: is_mere_relation R2 le is_mere_relation1: is_mere_relation R2 lt f: R2 -> R1 IsSemiRingPreserving0: IsSemiRingPreserving f IsStrongInjective0: IsStrongInjective f
(forallxy : R2, x ≤ y <-> f x ≤ f y) ->
(forallxy : R2, x < y <-> f x < f y) ->
FullPseudoSemiRingOrder R2le R2lt
R1: Type Aplus: Plus R1 Amult: Mult R1 Azero: Zero R1 Aone: One R1 Anegate: Negate R1 H: IsCRing R1 H0: Apart R1 R1le: Le R1 R1lt: Lt R1 FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder
R1le R1lt R2: Type Aplus0: Plus R2 Amult0: Mult R2 Azero0: Zero R2 Aone0: One R2 Anegate0: Negate R2 H1: IsCRing R2 Aap: Apart R2 H2: IsApart R2 R2le: Le R2 R2lt: Lt R2 is_mere_relation0: is_mere_relation R2 le is_mere_relation1: is_mere_relation R2 lt f: R2 -> R1 IsSemiRingPreserving0: IsSemiRingPreserving f IsStrongInjective0: IsStrongInjective f P1: forallxy : R2, x ≤ y <-> f x ≤ f y P2: forallxy : R2, x < y <-> f x < f y
FullPseudoSemiRingOrder R2le R2lt
R1: Type Aplus: Plus R1 Amult: Mult R1 Azero: Zero R1 Aone: One R1 Anegate: Negate R1 H: IsCRing R1 H0: Apart R1 R1le: Le R1 R1lt: Lt R1 FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder
R1le R1lt R2: Type Aplus0: Plus R2 Amult0: Mult R2 Azero0: Zero R2 Aone0: One R2 Anegate0: Negate R2 H1: IsCRing R2 Aap: Apart R2 H2: IsApart R2 R2le: Le R2 R2lt: Lt R2 is_mere_relation0: is_mere_relation R2 le is_mere_relation1: is_mere_relation R2 lt f: R2 -> R1 IsSemiRingPreserving0: IsSemiRingPreserving f IsStrongInjective0: IsStrongInjective f P1: forallxy : R2, x ≤ y <-> f x ≤ f y P2: forallxy : R2, x < y <-> f x < f y X: FullPseudoOrder R2le R2lt
FullPseudoSemiRingOrder R2le R2lt
R1: Type Aplus: Plus R1 Amult: Mult R1 Azero: Zero R1 Aone: One R1 Anegate: Negate R1 H: IsCRing R1 H0: Apart R1 R1le: Le R1 R1lt: Lt R1 FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder
R1le R1lt R2: Type Aplus0: Plus R2 Amult0: Mult R2 Azero0: Zero R2 Aone0: One R2 Anegate0: Negate R2 H1: IsCRing R2 Aap: Apart R2 H2: IsApart R2 R2le: Le R2 R2lt: Lt R2 is_mere_relation0: is_mere_relation R2 le is_mere_relation1: is_mere_relation R2 lt f: R2 -> R1 IsSemiRingPreserving0: IsSemiRingPreserving f IsStrongInjective0: IsStrongInjective f P1: forallxy : R2, x ≤ y <-> f x ≤ f y P2: forallxy : R2, x < y <-> f x < f y X: FullPseudoOrder R2le R2lt X0: PseudoSemiRingOrder R2lt
FullPseudoSemiRingOrder R2le R2lt
R1: Type Aplus: Plus R1 Amult: Mult R1 Azero: Zero R1 Aone: One R1 Anegate: Negate R1 H: IsCRing R1 H0: Apart R1 R1le: Le R1 R1lt: Lt R1 FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder
R1le R1lt R2: Type Aplus0: Plus R2 Amult0: Mult R2 Azero0: Zero R2 Aone0: One R2 Anegate0: Negate R2 H1: IsCRing R2 Aap: Apart R2 H2: IsApart R2 R2le: Le R2 R2lt: Lt R2 is_mere_relation0: is_mere_relation R2 le is_mere_relation1: is_mere_relation R2 lt f: R2 -> R1 IsSemiRingPreserving0: IsSemiRingPreserving f IsStrongInjective0: IsStrongInjective f P1: forallxy : R2, x ≤ y <-> f x ≤ f y P2: forallxy : R2, x < y <-> f x < f y X: FullPseudoOrder R2le R2lt X0: PseudoSemiRingOrder R2lt