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]
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N x: N
PropHolds (0 ≤ x)
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N x: N
PropHolds (0 ≤ x)
apply (to_semiring_nonneg (f:=id)).Qed.
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N x, y: N
x ≤ y <-> {z : N & y = x + z}
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N x, y: N
x ≤ y <-> {z : N & y = x + z}
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N x, y: N E: x ≤ y
{z : N & y = x + z}
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N x, y: N E: {z : N & y = x + z}
x ≤ y
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N x, y: N E: x ≤ y
{z : N & y = x + z}
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N x, y: N E: x ≤ y z: N Ez1: 0 ≤ z Ez2: y = x + z
{z : N & y = x + z}
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N x, y: N E: x ≤ y z: N Ez1: 0 ≤ z Ez2: y = x + z
y = x + z
trivial.
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N x, y: N E: {z : N & y = x + z}
x ≤ y
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N x, y, z: N Ez: y = x + z
x ≤ y
apply compose_le with z; [solve_propholds | trivial].Qed.
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N x: N
~ (x < 0)
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N x: N
~ (x < 0)
apply le_not_lt_flip, nat_nonneg.Qed.
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N x: N
((x = 0) + (0 < x))%type
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N x: N
((x = 0) + (0 < x))%type
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N x: N p: 0 = x
((x = 0) + (0 < x))%type
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N x: N l: x < 0
((x = 0) + (0 < x))%type
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N x: N p: 0 = x
((x = 0) + (0 < x))%type
left;symmetry;trivial.
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N x: N l: x < 0
((x = 0) + (0 < x))%type
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N x: N l: x < 0
x < 0
trivial.Qed.
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N x: N
((x = 0) + (1 ≤ x))%type
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N x: N
((x = 0) + (1 ≤ x))%type
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N x: N l: 0 < x
((x = 0) + (1 ≤ x))%type
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N x: N l: 0 < x
0 < x
trivial.Qed.
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N x: N
x <> 0 <-> 0 < x
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N x: N
x <> 0 <-> 0 < x
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N x: N
x <> 0 -> 0 < x
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N x: N
0 < x -> x <> 0
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N x: N
x <> 0 -> 0 < x
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N x: N p: x = 0
x <> 0 -> 0 < x
intros E;destruct E;trivial.
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N x: N
0 < x -> x <> 0
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N x: N E1: 0 < x E2: x = 0
Empty
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N x: N E1: 0 < 0 E2: x = 0
Empty
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N x: N E1: 0 < 0 E2: x = 0
0 < 0
trivial.Qed.
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N x: N
x <> 0 <-> 1 ≤ x
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N x: N
x <> 0 <-> 1 ≤ x
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N x: N
x <> 0 <-> ?Goal
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N x: N
?Goal <-> 1 ≤ x
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N x: N
x <> 0 <-> ?Goal
apply nat_ne_0_pos.
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N x: N
0 < x <-> 1 ≤ x
apply pos_ge_1.Qed.
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N
forallz : N,
PropHolds (z <> 0) -> OrderReflecting (mult z)
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N
forallz : N,
PropHolds (z <> 0) -> OrderReflecting (mult z)
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N z: N X: PropHolds (z <> 0)
OrderReflecting (mult z)
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N z: N X: PropHolds (z <> 0)
forallxy : N, z * x ≤ z * y -> x ≤ y
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N z: N X: PropHolds (z <> 0)
0 < z
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N z: N X: PropHolds (z <> 0)
z <> 0
trivial.Qed.
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N
forallxy : N, Decidable (x ≤ y)
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N
forallxy : N, Decidable (x ≤ y)
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N x, y: N
Decidable (x ≤ y)
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N x, y: N E: naturals_to_semiring N nat x
≤ naturals_to_semiring N nat y
Decidable (x ≤ y)
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N x, y: N E: ~
(naturals_to_semiring N nat x
≤ naturals_to_semiring N nat y)
Decidable (x ≤ y)
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N x, y: N E: naturals_to_semiring N nat x
≤ naturals_to_semiring N nat y
Decidable (x ≤ y)
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N x, y: N E: naturals_to_semiring N nat x
≤ naturals_to_semiring N nat y
x ≤ y
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N x, y: N E: naturals_to_semiring N nat x
≤ naturals_to_semiring N nat y
naturals_to_semiring N nat x
≤ naturals_to_semiring N nat y
exact E.
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N x, y: N E: ~
(naturals_to_semiring N nat x
≤ naturals_to_semiring N nat y)
Decidable (x ≤ y)
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N x, y: N E: ~
(naturals_to_semiring N nat x
≤ naturals_to_semiring N nat y)
~ (x ≤ y)
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N x, y: N E: ~
(naturals_to_semiring N nat x
≤ naturals_to_semiring N nat y) E': x ≤ y
Empty
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N x, y: N E: ~
(naturals_to_semiring N nat x
≤ naturals_to_semiring N nat y) E': x ≤ y
naturals_to_semiring N nat x
≤ naturals_to_semiring N nat y
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N x, y: N E: ~
(naturals_to_semiring N nat x
≤ naturals_to_semiring N nat y) E': x ≤ y
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N R: Type Aplus0: Plus R Amult0: Mult R Azero0: Zero R Aone0: One R Anegate: Negate R H2: IsCRing R H3: Apart R Rle: Le R Rlt: Lt R FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Rle
Rlt f: N -> R IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> R) n: N
- f n ≤ 0
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N R: Type Aplus0: Plus R Amult0: Mult R Azero0: Zero R Aone0: One R Anegate: Negate R H2: IsCRing R H3: Apart R Rle: Le R Rlt: Lt R FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Rle
Rlt f: N -> R IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> R) n: N
- f n ≤ 0
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N R: Type Aplus0: Plus R Amult0: Mult R Azero0: Zero R Aone0: One R Anegate: Negate R H2: IsCRing R H3: Apart R Rle: Le R Rlt: Lt R FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Rle
Rlt f: N -> R IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> R) n: N
0 ≤ f n
apply to_semiring_nonneg.Qed.
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N R: Type Aplus0: Plus R Amult0: Mult R Azero0: Zero R Aone0: One R Anegate: Negate R H2: IsCRing R H3: Apart R Rle: Le R Rlt: Lt R FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Rle
Rlt f: N -> R IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> R) n: N
- f n ≤ f n
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N R: Type Aplus0: Plus R Amult0: Mult R Azero0: Zero R Aone0: One R Anegate: Negate R H2: IsCRing R H3: Apart R Rle: Le R Rlt: Lt R FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Rle
Rlt f: N -> R IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> R) n: N
- f n ≤ f n
H: Funext H0: Univalence N: Type Aap: Apart N Aplus: Plus N Amult: Mult N Azero: Zero N Aone: One N Ale: Le N Alt: Lt N U: NaturalsToSemiRing N H1: Naturals N TrivialApart0: TrivialApart N R: Type Aplus0: Plus R Amult0: Mult R Azero0: Zero R Aone0: One R Anegate: Negate R H2: IsCRing R H3: Apart R Rle: Le R Rlt: Lt R FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Rle
Rlt f: N -> R IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> R) n: N