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]
Require Export
HoTT.Classes.orders.rings.Generalizable VariablesF f R Fle Flt.Sectioncontents.Context `{IsDecField F} `{Apart F} `{!TrivialApart F}
`{!FullPseudoSemiRingOrder Fle Flt} `{DecidablePaths F}.(* Add Ring F : (stdlib_ring_theory F). *)
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x: F
PropHolds (0 < x) -> PropHolds (0 < / x)
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x: F
PropHolds (0 < x) -> PropHolds (0 < / x)
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x: F E: PropHolds (0 < x)
PropHolds (0 < / x)
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x: F E: PropHolds (0 < x)
x * 0 < x / x
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x: F E: PropHolds (0 < x)
x * 0 < 1
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x: F E: PropHolds (0 < x)
0 < 1
solve_propholds.Qed.
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x: F
PropHolds (0 ≤ x) -> PropHolds (0 ≤ / x)
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x: F
PropHolds (0 ≤ x) -> PropHolds (0 ≤ / x)
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x: F E: PropHolds (0 ≤ x)
PropHolds (0 ≤ / x)
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x: F E: PropHolds (0 ≤ x)
0 ≤ / x
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x: F E: PropHolds (0 ≤ x) E2: x = 0
0 ≤ / x
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x: F E: PropHolds (0 ≤ x) E2: x <> 0
0 ≤ / x
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x: F E: PropHolds (0 ≤ x) E2: x = 0
0 ≤ / x
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x: F E: PropHolds (0 ≤ x) E2: x = 0
0 ≤ 0
rewrite E2 in E;trivial.
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x: F E: PropHolds (0 ≤ x) E2: x <> 0
0 ≤ / x
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x: F E: PropHolds (0 ≤ x) E2: x <> 0
PropHolds (0 < / x)
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x: F E: PropHolds (0 ≤ x) E2: x <> 0
PropHolds (0 < x)
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x: F E: PropHolds (0 ≤ x) E2: x <> 0
((0 ≤ x) * (0 <> x))%type
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x: F E: PropHolds (0 ≤ x) E2: x <> 0
0 <> x
apply symmetric_neq;trivial.Qed.
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x: F
x < 0 -> / x < 0
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x: F
x < 0 -> / x < 0
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x: F X: x < 0
/ x < 0
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x: F X: x < 0
0 < - / x
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x: F X: x < 0
0 < / - x
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x: F X: x < 0
PropHolds (0 < - x)
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x: F X: x < 0
x < 0
trivial.Qed.
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x: F
x ≤ 0 -> / x ≤ 0
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x: F
x ≤ 0 -> / x ≤ 0
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x: F X: x ≤ 0
/ x ≤ 0
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x: F X: x ≤ 0
0 ≤ - / x
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x: F X: x ≤ 0
0 ≤ / - x
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x: F X: x ≤ 0
PropHolds (0 ≤ - x)
apply flip_nonpos_negate;trivial.Qed.
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x, y: F
0 < y -> y ≤ x -> / x ≤ / y
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x, y: F
0 < y -> y ≤ x -> / x ≤ / y
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x, y: F E1: 0 < y E2: y ≤ x
/ x ≤ / y
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x, y: F E1: 0 < y E2: y ≤ x
0 < x
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x, y: F E1: 0 < y E2: y ≤ x
x / x ≤ x / y
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x, y: F E1: 0 < y E2: y ≤ x
0 < x
apply lt_le_trans with y;trivial.
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x, y: F E1: 0 < y E2: y ≤ x
x / x ≤ x / y
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x, y: F E1: 0 < y E2: y ≤ x
1 ≤ x / y
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x, y: F E1: 0 < y E2: y ≤ x
x <> 0
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x, y: F E1: 0 < y E2: y ≤ x
1 ≤ x / y
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x, y: F E1: 0 < y E2: y ≤ x
y * 1 ≤ y * (x / y)
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x, y: F E1: 0 < y E2: y ≤ x
y * 1 ≤ 1 * x
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x, y: F E1: 0 < y E2: y ≤ x
y <> 0
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x, y: F E1: 0 < y E2: y ≤ x
y * 1 ≤ 1 * x
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x, y: F E1: 0 < y E2: y ≤ x
y ≤ x
trivial.
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x, y: F E1: 0 < y E2: y ≤ x
y <> 0
apply lt_ne_flip;trivial.
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x, y: F E1: 0 < y E2: y ≤ x
x <> 0
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x, y: F E1: 0 < y E2: y ≤ x
0 < x
apply lt_le_trans with y;trivial.Qed.
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x, y: F
0 < y -> / y ≤ x -> / x ≤ y
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x, y: F
0 < y -> / y ≤ x -> / x ≤ y
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x, y: F E1: 0 < y E2: / y ≤ x
/ x ≤ y
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x, y: F E1: 0 < y E2: / y ≤ x
/ x ≤ / / y
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x, y: F E1: 0 < y E2: / y ≤ x
0 < / y
apply pos_dec_recip_compat;trivial.Qed.
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x, y: F
0 < y -> y ≤ / x -> x ≤ / y
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x, y: F
0 < y -> y ≤ / x -> x ≤ / y
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x, y: F E1: 0 < y E2: y ≤ / x
x ≤ / y
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x, y: F E1: 0 < y E2: y ≤ / x
/ / x ≤ / y
apply flip_le_dec_recip;trivial.Qed.
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x, y: F
0 < y -> y < x -> / x < / y
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x, y: F
0 < y -> y < x -> / x < / y
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x, y: F E1: 0 < y E2: y < x
/ x < / y
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x, y: F E1: 0 < y E2: y < x X: 0 < x
/ x < / y
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x, y: F E1: 0 < y E2: y < x X: 0 < x
x / x < x / y
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x, y: F E1: 0 < y E2: y < x X: 0 < x
1 < x / y
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x, y: F E1: 0 < y E2: y < x X: 0 < x
x <> 0
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x, y: F E1: 0 < y E2: y < x X: 0 < x
1 < x / y
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x, y: F E1: 0 < y E2: y < x X: 0 < x
y * 1 < y * (x / y)
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x, y: F E1: 0 < y E2: y < x X: 0 < x
y * 1 < 1 * x
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x, y: F E1: 0 < y E2: y < x X: 0 < x
y <> 0
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x, y: F E1: 0 < y E2: y < x X: 0 < x
y * 1 < 1 * x
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x, y: F E1: 0 < y E2: y < x X: 0 < x
y < x
trivial.
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x, y: F E1: 0 < y E2: y < x X: 0 < x
y <> 0
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x, y: F E1: 0 < y E2: y < x X: 0 < x
0 < y
trivial.
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x, y: F E1: 0 < y E2: y < x X: 0 < x
x <> 0
apply lt_ne_flip;trivial.Qed.
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x, y: F
0 < y -> / y < x -> / x < y
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x, y: F
0 < y -> / y < x -> / x < y
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x, y: F E1: 0 < y E2: / y < x
/ x < y
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x, y: F E1: 0 < y E2: / y < x
/ x < / / y
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x, y: F E1: 0 < y E2: / y < x
0 < / y
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x, y: F E1: 0 < y E2: / y < x
PropHolds (0 < y)
trivial.Qed.
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x, y: F
0 < y -> y < / x -> x < / y
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x, y: F
0 < y -> y < / x -> x < / y
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x, y: F E1: 0 < y E2: y < / x
x < / y
F: Type Aplus: Plus F Amult: Mult F Azero: Zero F Aone: One F Anegate: Negate F Adec_recip: DecRecip F H: IsDecField F H0: Apart F TrivialApart0: TrivialApart F Fle: Le F Flt: Lt F FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Fle
Flt H1: DecidablePaths F x, y: F E1: 0 < y E2: y < / x
/ / x < / y
apply flip_lt_dec_recip;trivial.Qed.Endcontents.(* Due to bug #2528 *)#[export]
Hint Extern12 (PropHolds (0 ≤ _)) =>
eapply @nonneg_dec_recip_compat : typeclass_instances.#[export]
Hint Extern12 (PropHolds (0 < _)) =>
eapply @pos_dec_recip_compat : typeclass_instances.