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]
Generalizable VariablesN Z Zle Zlt R f.Sectioncontents.Context `{Funext} `{Univalence}.Context `{Integers Z} `{Apart Z} `{!TrivialApart Z}
`{!FullPseudoSemiRingOrder Zle Zlt} `{Naturals N}.(* Add Ring Z : (rings.stdlib_ring_theory Z). *)
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N a, b: IntAbs Z N z: Z
int_abs Z N z = int_abs Z N z
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N a, b: IntAbs Z N z: Z
int_abs Z N z = int_abs Z N z
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N a, b: IntAbs Z N z: Z
match int_abs_sig Z N z with
| inl s => s.1
| inr s => s.1end =
match int_abs_sig Z N z with
| inl s => s.1
| inr s => s.1end
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N a, b: IntAbs Z N z: Z n1: N E1: naturals_to_semiring N Z n1 = z n2: N E2: naturals_to_semiring N Z n2 = z
n1 = n2
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N a, b: IntAbs Z N z: Z n1: N E1: naturals_to_semiring N Z n1 = z n2: N E2: naturals_to_semiring N Z n2 = - z
n1 = n2
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N a, b: IntAbs Z N z: Z n1: N E1: naturals_to_semiring N Z n1 = - z n2: N E2: naturals_to_semiring N Z n2 = z
n1 = n2
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N a, b: IntAbs Z N z: Z n1: N E1: naturals_to_semiring N Z n1 = - z n2: N E2: naturals_to_semiring N Z n2 = - z
n1 = n2
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N a, b: IntAbs Z N z: Z n1: N E1: naturals_to_semiring N Z n1 = z n2: N E2: naturals_to_semiring N Z n2 = z
n1 = n2
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N a, b: IntAbs Z N z: Z n1: N E1: naturals_to_semiring N Z n1 = z n2: N E2: naturals_to_semiring N Z n2 = z
naturals_to_semiring N Z n1 =
naturals_to_semiring N Z n2
path_via z.
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N a, b: IntAbs Z N z: Z n1: N E1: naturals_to_semiring N Z n1 = z n2: N E2: naturals_to_semiring N Z n2 = - z
n1 = n2
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N a, b: IntAbs Z N z: Z n1: N E1: naturals_to_semiring N Z n1 = z n2: N E2: naturals_to_semiring N Z n2 = - z
n1 + n2 = 0
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N a, b: IntAbs Z N z: Z n1: N E1: naturals_to_semiring N Z n1 = z n2: N E2: naturals_to_semiring N Z n2 = - z
naturals_to_semiring N Z (n1 + n2) =
naturals_to_semiring N Z 0
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N a, b: IntAbs Z N z: Z n1: N E1: naturals_to_semiring N Z n1 = z n2: N E2: naturals_to_semiring N Z n2 = - z
naturals_to_semiring N Z n1 +
naturals_to_semiring N Z n2 = 0
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N a, b: IntAbs Z N z: Z n1: N E1: naturals_to_semiring N Z n1 = z n2: N E2: naturals_to_semiring N Z n2 = - z
z - z = 0
apply plus_negate_r.
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N a, b: IntAbs Z N z: Z n1: N E1: naturals_to_semiring N Z n1 = - z n2: N E2: naturals_to_semiring N Z n2 = z
n1 = n2
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N a, b: IntAbs Z N z: Z n1: N E1: naturals_to_semiring N Z n1 = - z n2: N E2: naturals_to_semiring N Z n2 = z
n1 + n2 = 0
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N a, b: IntAbs Z N z: Z n1: N E1: naturals_to_semiring N Z n1 = - z n2: N E2: naturals_to_semiring N Z n2 = z
naturals_to_semiring N Z (n1 + n2) =
naturals_to_semiring N Z 0
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N a, b: IntAbs Z N z: Z n1: N E1: naturals_to_semiring N Z n1 = - z n2: N E2: naturals_to_semiring N Z n2 = z
naturals_to_semiring N Z n1 +
naturals_to_semiring N Z n2 = 0
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N a, b: IntAbs Z N z: Z n1: N E1: naturals_to_semiring N Z n1 = - z n2: N E2: naturals_to_semiring N Z n2 = z
- z + z = 0
apply plus_negate_l.
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N a, b: IntAbs Z N z: Z n1: N E1: naturals_to_semiring N Z n1 = - z n2: N E2: naturals_to_semiring N Z n2 = - z
n1 = n2
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N a, b: IntAbs Z N z: Z n1: N E1: naturals_to_semiring N Z n1 = - z n2: N E2: naturals_to_semiring N Z n2 = - z
naturals_to_semiring N Z n1 =
naturals_to_semiring N Z n2
path_via (- z).Qed.Context `{!IntAbs Z N}.Context `{!IsSemiRingPreserving (f : N -> Z)}.
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x: Z
((0 ≤ x) * (f (int_abs Z N x) = x) +
(x ≤ 0) * (f (int_abs Z N x) = - x))%type
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x: Z
((0 ≤ x) * (f (int_abs Z N x) = x) +
(x ≤ 0) * (f (int_abs Z N x) = - x))%type
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x: Z
((0 ≤ x) *
(f
match int_abs_sig Z N x with
| inl s => s.1
| inr s => s.1end = x) +
(x ≤ 0) *
(f
match int_abs_sig Z N x with
| inl s => s.1
| inr s => s.1end = - x))%type
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x: Z n: N E: naturals_to_semiring N Z n = x
((0 ≤ x) * (f n = x) + (x ≤ 0) * (f n = - x))%type
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x: Z n: N E: naturals_to_semiring N Z n = - x
((0 ≤ x) * (f n = x) + (x ≤ 0) * (f n = - x))%type
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x: Z n: N E: naturals_to_semiring N Z n = x
((0 ≤ x) * (f n = x) + (x ≤ 0) * (f n = - x))%type
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x: Z n: N E: naturals_to_semiring N Z n = x
((0 ≤ x) * (f n = x))%type
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x: Z n: N E: naturals_to_semiring N Z n = x
((0 ≤ naturals_to_semiring N Z n) *
(f n = naturals_to_semiring N Z n))%type
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x: Z n: N E: naturals_to_semiring N Z n = x
0 ≤ naturals_to_semiring N Z n
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x: Z n: N E: naturals_to_semiring N Z n = x
f n = naturals_to_semiring N Z n
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x: Z n: N E: naturals_to_semiring N Z n = x
0 ≤ naturals_to_semiring N Z n
eapply @to_semiring_nonneg;apply _.
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x: Z n: N E: naturals_to_semiring N Z n = x
f n = naturals_to_semiring N Z n
apply (naturals.to_semiring_unique_alt _ _).
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x: Z n: N E: naturals_to_semiring N Z n = - x
((0 ≤ x) * (f n = x) + (x ≤ 0) * (f n = - x))%type
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x: Z n: N E: naturals_to_semiring N Z n = - x
((x ≤ 0) * (f n = - x))%type
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x: Z n: N E: naturals_to_semiring N Z n = - x
x ≤ 0
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x: Z n: N E: naturals_to_semiring N Z n = - x
f n = - x
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x: Z n: N E: naturals_to_semiring N Z n = - x
x ≤ 0
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x: Z n: N E: naturals_to_semiring N Z n = - x
0 ≤ - x
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x: Z n: N E: naturals_to_semiring N Z n = - x
0 ≤ naturals_to_semiring N Z n
eapply @to_semiring_nonneg;apply _.
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x: Z n: N E: naturals_to_semiring N Z n = - x
f n = - x
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x: Z n: N E: naturals_to_semiring N Z n = - x
f n = naturals_to_semiring N Z n
apply (naturals.to_semiring_unique_alt _ _).Qed.
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x: Z
({n : N & f n = x} + {n : N & f n = - x})%type
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x: Z
({n : N & f n = x} + {n : N & f n = - x})%type
destruct (int_abs_spec x) as [[??]|[??]]; eauto.Qed.
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) n: N
int_abs Z N (f n) = n
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) n: N
int_abs Z N (f n) = n
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) n: N
f (int_abs Z N (f n)) = f n
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) n: N fst: f n ≤ 0 E: f (int_abs Z N (f n)) = - f n
f (int_abs Z N (f n)) = f n
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) n: N fst: f n ≤ 0 E: f (int_abs Z N (f n)) = - f n
- f (int_abs Z N (f n)) = f n
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) n: N fst: f n ≤ 0 E: f (int_abs Z N (f n)) = - f n
f n = f n
trivial.Qed.
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) n: N
int_abs Z N (- f n) = n
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) n: N
int_abs Z N (- f n) = n
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) n: N
f (int_abs Z N (- f n)) = f n
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) n: N fst: 0 ≤ - f n E: f (int_abs Z N (- f n)) = - f n
f (int_abs Z N (- f n)) = f n
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) n: N fst: - f n ≤ 0 E: f (int_abs Z N (- f n)) = - - f n
f (int_abs Z N (- f n)) = f n
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) n: N fst: 0 ≤ - f n E: f (int_abs Z N (- f n)) = - f n
f (int_abs Z N (- f n)) = f n
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) n: N fst: 0 ≤ - f n E: f (int_abs Z N (- f n)) = - f n
f n = f (int_abs Z N (- f n))
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) n: N fst: 0 ≤ - f n E: f (int_abs Z N (- f n)) = - f n
- f n = f (int_abs Z N (- f n))
applysymmetry; trivial.
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) n: N fst: - f n ≤ 0 E: f (int_abs Z N (- f n)) = - - f n
f (int_abs Z N (- f n)) = f n
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) n: N fst: - f n ≤ 0 E: f (int_abs Z N (- f n)) = f n
f (int_abs Z N (- f n)) = f n
trivial.Qed.
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x: Z
int_abs Z N (- x) = int_abs Z N x
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x: Z
int_abs Z N (- x) = int_abs Z N x
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x: Z E: f (int_abs Z N x) = x
int_abs Z N (- x) = int_abs Z N x
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x: Z E: f (int_abs Z N x) = - x
int_abs Z N (- x) = int_abs Z N x
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x: Z E: f (int_abs Z N x) = x
int_abs Z N (- x) = int_abs Z N x
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x: Z E: f (int_abs Z N x) = x
int_abs Z N (- f (int_abs Z N x)) = int_abs Z N x
apply int_abs_negate_nat.
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x: Z E: f (int_abs Z N x) = - x
int_abs Z N (- x) = int_abs Z N x
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x: Z E: f (int_abs Z N x) = - x
int_abs Z N (f (int_abs Z N x)) = int_abs Z N x
apply int_abs_nat.Qed.
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x: Z
int_abs Z N x = 0 <-> x = 0
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x: Z
int_abs Z N x = 0 <-> x = 0
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x: Z E1: int_abs Z N x = 0
x = 0
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x: Z E1: x = 0
int_abs Z N x = 0
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x: Z E1: int_abs Z N x = 0
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x: Z E1: x = 0
int_abs Z N x = 0
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x: Z E1: x = 0
int_abs Z N (f 0) = 0
apply int_abs_nat.Qed.
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x: Z
int_abs Z N x <> 0 <-> x <> 0
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x: Z
int_abs Z N x <> 0 <-> x <> 0
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x: Z fst: int_abs Z N x = 0 -> x = 0 snd: x = 0 -> int_abs Z N x = 0
int_abs Z N x <> 0 <-> x <> 0
split;intros E1 E2;auto.Qed.
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z)
int_abs Z N 0 = 0
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z)
int_abs Z N 0 = 0
apply int_abs_0_alt;trivial.Qed.
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x: Z
0 ≤ x -> f (int_abs Z N x) = x
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x: Z
0 ≤ x -> f (int_abs Z N x) = x
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x: Z E1: 0 ≤ x
f (int_abs Z N x) = x
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x: Z E1: 0 ≤ x n: x ≤ 0 E2: f (int_abs Z N x) = - x
f (int_abs Z N x) = x
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x: Z E1: 0 ≤ x n: x ≤ 0 E2: f (int_abs Z N x) = - x
x = 0
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x: Z E1: 0 ≤ x n: x ≤ 0 E2: f (int_abs Z N x) = - x Hrw: x = 0
f (int_abs Z N x) = x
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x: Z E1: 0 ≤ x n: x ≤ 0 E2: f (int_abs Z N x) = - x
x = 0
apply (antisymmetry (<=));trivial.
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x: Z E1: 0 ≤ x n: x ≤ 0 E2: f (int_abs Z N x) = - x Hrw: x = 0
f (int_abs Z N x) = x
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x: Z E1: 0 ≤ x n: x ≤ 0 E2: f (int_abs Z N x) = - x Hrw: x = 0
0 = 0
trivial.Qed.
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x: Z
x ≤ 0 -> f (int_abs Z N x) = - x
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x: Z
x ≤ 0 -> f (int_abs Z N x) = - x
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x: Z E: x ≤ 0
f (int_abs Z N x) = - x
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x: Z E: x ≤ 0
0 ≤ - x
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x: Z E: x ≤ 0
x ≤ 0
trivial.Qed.
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z)
int_abs Z N 1 = 1
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z)
int_abs Z N 1 = 1
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z)
f (int_abs Z N 1) = f 1
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z)
f (int_abs Z N 1) = 1
apply int_abs_nonneg; solve_propholds.Qed.
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x, y: Z
0 ≤ x ->
0 ≤ y ->
int_abs Z N (x + y) = int_abs Z N x + int_abs Z N y
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x, y: Z
0 ≤ x ->
0 ≤ y ->
int_abs Z N (x + y) = int_abs Z N x + int_abs Z N y
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x, y: Z X: 0 ≤ x X0: 0 ≤ y
int_abs Z N (x + y) = int_abs Z N x + int_abs Z N y
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x, y: Z X: 0 ≤ x X0: 0 ≤ y
f (int_abs Z N (x + y)) =
f (int_abs Z N x + int_abs Z N y)
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x, y: Z X: 0 ≤ x X0: 0 ≤ y
0 ≤ x + y
apply nonneg_plus_compat;trivial.Qed.
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x, y: Z
int_abs Z N (x * y) = int_abs Z N x * int_abs Z N y
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x, y: Z
int_abs Z N (x * y) = int_abs Z N x * int_abs Z N y
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x, y: Z
f (int_abs Z N (x * y)) =
f (int_abs Z N x * int_abs Z N y)
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x, y: Z
f (int_abs Z N (x * y)) =
f (int_abs Z N x) * f (int_abs Z N y)
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x, y: Z fst: 0 ≤ x Ex: f (int_abs Z N x) = x fst0: 0 ≤ y Ey: f (int_abs Z N y) = y
f (int_abs Z N (x * y)) = x * y
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x, y: Z fst: 0 ≤ x Ex: f (int_abs Z N x) = x fst0: y ≤ 0 Ey: f (int_abs Z N y) = - y
f (int_abs Z N (x * y)) = x * - y
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x, y: Z fst: x ≤ 0 Ex: f (int_abs Z N x) = - x fst0: 0 ≤ y Ey: f (int_abs Z N y) = y
f (int_abs Z N (x * y)) = - x * y
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x, y: Z fst: x ≤ 0 Ex: f (int_abs Z N x) = - x fst0: y ≤ 0 Ey: f (int_abs Z N y) = - y
f (int_abs Z N (x * y)) = - x * - y
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x, y: Z fst: 0 ≤ x Ex: f (int_abs Z N x) = x fst0: 0 ≤ y Ey: f (int_abs Z N y) = y
f (int_abs Z N (x * y)) = x * y
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x, y: Z fst: 0 ≤ x Ex: f (int_abs Z N x) = x fst0: 0 ≤ y Ey: f (int_abs Z N y) = y
0 ≤ x * y
apply nonneg_mult_compat;trivial.
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x, y: Z fst: 0 ≤ x Ex: f (int_abs Z N x) = x fst0: y ≤ 0 Ey: f (int_abs Z N y) = - y
f (int_abs Z N (x * y)) = x * - y
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x, y: Z fst: 0 ≤ x Ex: f (int_abs Z N x) = x fst0: y ≤ 0 Ey: f (int_abs Z N y) = - y
- (x * y) = x * - y
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x, y: Z fst: 0 ≤ x Ex: f (int_abs Z N x) = x fst0: y ≤ 0 Ey: f (int_abs Z N y) = - y
x * y ≤ 0
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x, y: Z fst: 0 ≤ x Ex: f (int_abs Z N x) = x fst0: y ≤ 0 Ey: f (int_abs Z N y) = - y
- (x * y) = x * - y
apply negate_mult_distr_r.
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x, y: Z fst: 0 ≤ x Ex: f (int_abs Z N x) = x fst0: y ≤ 0 Ey: f (int_abs Z N y) = - y
x * y ≤ 0
apply nonneg_nonpos_mult;trivial.
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x, y: Z fst: x ≤ 0 Ex: f (int_abs Z N x) = - x fst0: 0 ≤ y Ey: f (int_abs Z N y) = y
f (int_abs Z N (x * y)) = - x * y
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x, y: Z fst: x ≤ 0 Ex: f (int_abs Z N x) = - x fst0: 0 ≤ y Ey: f (int_abs Z N y) = y
- (x * y) = - x * y
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x, y: Z fst: x ≤ 0 Ex: f (int_abs Z N x) = - x fst0: 0 ≤ y Ey: f (int_abs Z N y) = y
x * y ≤ 0
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x, y: Z fst: x ≤ 0 Ex: f (int_abs Z N x) = - x fst0: 0 ≤ y Ey: f (int_abs Z N y) = y
- (x * y) = - x * y
apply negate_mult_distr_l.
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x, y: Z fst: x ≤ 0 Ex: f (int_abs Z N x) = - x fst0: 0 ≤ y Ey: f (int_abs Z N y) = y
x * y ≤ 0
apply nonpos_nonneg_mult;trivial.
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x, y: Z fst: x ≤ 0 Ex: f (int_abs Z N x) = - x fst0: y ≤ 0 Ey: f (int_abs Z N y) = - y
f (int_abs Z N (x * y)) = - x * - y
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x, y: Z fst: x ≤ 0 Ex: f (int_abs Z N x) = - x fst0: y ≤ 0 Ey: f (int_abs Z N y) = - y
x * y = - x * - y
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x, y: Z fst: x ≤ 0 Ex: f (int_abs Z N x) = - x fst0: y ≤ 0 Ey: f (int_abs Z N y) = - y
0 ≤ x * y
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x, y: Z fst: x ≤ 0 Ex: f (int_abs Z N x) = - x fst0: y ≤ 0 Ey: f (int_abs Z N y) = - y
x * y = - x * - y
symmetry;apply negate_mult_negate.
H: Funext H0: Univalence Z: Type Aap: Apart Z Aplus: Plus Z Amult: Mult Z Azero: Zero Z Aone: One Z Anegate: Negate Z Ale: Le Z Alt: Lt Z U: IntegersToRing Z H1: Integers Z H2: Apart Z TrivialApart0: TrivialApart Z Zle: Le Z Zlt: Lt Z FullPseudoSemiRingOrder0: FullPseudoSemiRingOrder Zle
Zlt N: Type Aap0: Apart N Aplus0: Plus N Amult0: Mult N Azero0: Zero N Aone0: One N Ale0: Le N Alt0: Lt N U0: NaturalsToSemiRing N H3: Naturals N IntAbs0: IntAbs Z N f: N -> Z IsSemiRingPreserving0: IsSemiRingPreserving
(f : N -> Z) x, y: Z fst: x ≤ 0 Ex: f (int_abs Z N x) = - x fst0: y ≤ 0 Ey: f (int_abs Z N y) = - y