Built with Alectryon, running Coq+SerAPI v8.18.0+0.18.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 Variables N Z Zle Zlt R f. Section contents. 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.1 end = match int_abs_sig Z N z with | inl s => s.1 | inr s => s.1 end
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.1 end = x) + (x ≤ 0) * (f match int_abs_sig Z N x with | inl s => s.1 | inr s => s.1 end = - 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))
apply symmetry; 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

x = 0
destruct (int_abs_spec x) as [[_ E2]|[_ E2]];[|apply flip_negate_0]; rewrite <-E2, E1, (preserves_0 (f:=f)); 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: 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

0 ≤ x * y
apply nonpos_mult;trivial. Qed. End contents.