Beginning of Section SurrealDiv
Notation. We use - as a prefix operator with priority 358 corresponding to applying term minus_SNo.
Notation. We use + as an infix operator with priority 360 and which associates to the right corresponding to applying term add_SNo.
Notation. We use * as an infix operator with priority 355 and which associates to the right corresponding to applying term mul_SNo.
Notation. We use < as an infix operator with priority 490 and no associativity corresponding to applying term SNoLt.
Notation. We use as an infix operator with priority 490 and no associativity corresponding to applying term SNoLe.
Notation. We use ^ as an infix operator with priority 342 and which associates to the right corresponding to applying term exp_SNo_nat.
Definition. We define SNoL_pos to be λx ⇒ {w ∈ SNoL x|0 < w} of type setset.
Axiom. (SNo_recip_pos_pos) We take the following as an axiom:
∀x xi, SNo xSNo xi0 < xx * xi = 10 < xi
Axiom. (SNo_recip_lem1) We take the following as an axiom:
∀x x' x'i y y', SNo x0 < xx' SNoL_pos xSNo x'ix' * x'i = 1SNo yx * y < 1SNo y'1 + - x * y' = (1 + - x * y) * (x' + - x) * x'i1 < x * y'
Axiom. (SNo_recip_lem2) We take the following as an axiom:
∀x x' x'i y y', SNo x0 < xx' SNoL_pos xSNo x'ix' * x'i = 1SNo y1 < x * ySNo y'1 + - x * y' = (1 + - x * y) * (x' + - x) * x'ix * y' < 1
Axiom. (SNo_recip_lem3) We take the following as an axiom:
∀x x' x'i y y', SNo x0 < xx' SNoR xSNo x'ix' * x'i = 1SNo yx * y < 1SNo y'1 + - x * y' = (1 + - x * y) * (x' + - x) * x'ix * y' < 1
Axiom. (SNo_recip_lem4) We take the following as an axiom:
∀x x' x'i y y', SNo x0 < xx' SNoR xSNo x'ix' * x'i = 1SNo y1 < x * ySNo y'1 + - x * y' = (1 + - x * y) * (x' + - x) * x'i1 < x * y'
Definition. We define SNo_recipauxset to be λY x X g ⇒ y ∈ Y{(1 + (x' + - x) * y) * g x'|x' ∈ X} of type setsetset(setset)set.
Axiom. (SNo_recipauxset_I) We take the following as an axiom:
∀Y x X, ∀g : setset, ∀yY, ∀x'X, (1 + (x' + - x) * y) * g x' SNo_recipauxset Y x X g
Axiom. (SNo_recipauxset_E) We take the following as an axiom:
∀Y x X, ∀g : setset, ∀zSNo_recipauxset Y x X g, ∀p : prop, (∀yY, ∀x'X, z = (1 + (x' + - x) * y) * g x'p)p
Axiom. (SNo_recipauxset_ext) We take the following as an axiom:
∀Y x X, ∀g h : setset, (∀x'X, g x' = h x')SNo_recipauxset Y x X g = SNo_recipauxset Y x X h
Definition. We define SNo_recipaux to be λx g ⇒ nat_primrec ({0},0) (λk p ⇒ (p 0SNo_recipauxset (p 0) x (SNoR x) gSNo_recipauxset (p 1) x (SNoL_pos x) g,p 1SNo_recipauxset (p 0) x (SNoL_pos x) gSNo_recipauxset (p 1) x (SNoR x) g)) of type set(setset)setset.
Axiom. (SNo_recipaux_0) We take the following as an axiom:
∀x, ∀g : setset, SNo_recipaux x g 0 = ({0},0)
Axiom. (SNo_recipaux_S) We take the following as an axiom:
∀x, ∀g : setset, ∀n, nat_p nSNo_recipaux x g (ordsucc n) = (SNo_recipaux x g n 0SNo_recipauxset (SNo_recipaux x g n 0) x (SNoR x) gSNo_recipauxset (SNo_recipaux x g n 1) x (SNoL_pos x) g,SNo_recipaux x g n 1SNo_recipauxset (SNo_recipaux x g n 0) x (SNoL_pos x) gSNo_recipauxset (SNo_recipaux x g n 1) x (SNoR x) g)
Axiom. (SNo_recipaux_lem1) We take the following as an axiom:
∀x, SNo x0 < x∀g : setset, (∀x'SNoS_ (SNoLev x), 0 < x'SNo (g x')x' * g x' = 1)∀k, nat_p k(∀ySNo_recipaux x g k 0, SNo yx * y < 1)(∀ySNo_recipaux x g k 1, SNo y1 < x * y)
Axiom. (SNo_recipaux_lem2) We take the following as an axiom:
∀x, SNo x0 < x∀g : setset, (∀x'SNoS_ (SNoLev x), 0 < x'SNo (g x')x' * g x' = 1)SNoCutP (k ∈ ωSNo_recipaux x g k 0) (k ∈ ωSNo_recipaux x g k 1)
Axiom. (SNo_recipaux_ext) We take the following as an axiom:
∀x, SNo x∀g h : setset, (∀x'SNoS_ (SNoLev x), g x' = h x')∀k, nat_p kSNo_recipaux x g k = SNo_recipaux x h k
Beginning of Section recip_SNo_pos
Let G : set(setset)setλx g ⇒ SNoCut (k ∈ ωSNo_recipaux x g k 0) (k ∈ ωSNo_recipaux x g k 1)
Primitive. The name recip_SNo_pos is a term of type setset.
Axiom. (recip_SNo_pos_eq) We take the following as an axiom:
∀x, SNo xrecip_SNo_pos x = G x recip_SNo_pos
Axiom. (recip_SNo_pos_prop1) We take the following as an axiom:
∀x, SNo x0 < xSNo (recip_SNo_pos x)x * recip_SNo_pos x = 1
Axiom. (SNo_recip_SNo_pos) We take the following as an axiom:
∀x, SNo x0 < xSNo (recip_SNo_pos x)
Axiom. (recip_SNo_pos_invR) We take the following as an axiom:
∀x, SNo x0 < xx * recip_SNo_pos x = 1
Axiom. (recip_SNo_pos_1) We take the following as an axiom:
Axiom. (recip_SNo_pos_is_pos) We take the following as an axiom:
∀x, SNo x0 < x0 < recip_SNo_pos x
Axiom. (recip_SNo_pos_invol) We take the following as an axiom:
∀x, SNo x0 < xrecip_SNo_pos (recip_SNo_pos x) = x
Axiom. (recip_SNo_pos_eps_) We take the following as an axiom:
∀n, nat_p nrecip_SNo_pos (eps_ n) = 2 ^ n
Axiom. (recip_SNo_pos_pow_2) We take the following as an axiom:
∀n, nat_p nrecip_SNo_pos (2 ^ n) = eps_ n
Axiom. (recip_SNo_pos_2) We take the following as an axiom:
recip_SNo_pos 2 = eps_ 1
End of Section recip_SNo_pos
Primitive. The name recip_SNo is a term of type setset.
Axiom. (recip_SNo_poscase) We take the following as an axiom:
∀x, 0 < xrecip_SNo x = recip_SNo_pos x
Axiom. (recip_SNo_negcase) We take the following as an axiom:
∀x, SNo xx < 0recip_SNo x = - recip_SNo_pos (- x)
Axiom. (recip_SNo_0) We take the following as an axiom:
recip_SNo 0 = 0
Axiom. (recip_SNo_1) We take the following as an axiom:
recip_SNo 1 = 1
Axiom. (SNo_recip_SNo) We take the following as an axiom:
∀x, SNo xSNo (recip_SNo x)
Axiom. (recip_SNo_invR) We take the following as an axiom:
∀x, SNo xx0x * recip_SNo x = 1
Axiom. (recip_SNo_invL) We take the following as an axiom:
∀x, SNo xx0recip_SNo x * x = 1
Axiom. (recip_SNo_eps_) We take the following as an axiom:
∀n, nat_p nrecip_SNo (eps_ n) = 2 ^ n
Axiom. (recip_SNo_pow_2) We take the following as an axiom:
∀n, nat_p nrecip_SNo (2 ^ n) = eps_ n
Axiom. (recip_SNo_2) We take the following as an axiom:
recip_SNo 2 = eps_ 1
Axiom. (recip_SNo_invol) We take the following as an axiom:
∀x, SNo xrecip_SNo (recip_SNo x) = x
Axiom. (recip_SNo_of_pos_is_pos) We take the following as an axiom:
∀x, SNo x0 < x0 < recip_SNo x
Axiom. (recip_SNo_neg') We take the following as an axiom:
∀x, SNo xx < 0recip_SNo x < 0
Definition. We define div_SNo to be λx y ⇒ x * recip_SNo y of type setsetset.
Notation. We use :/: as an infix operator with priority 353 and no associativity corresponding to applying term div_SNo.
Axiom. (SNo_div_SNo) We take the following as an axiom:
∀x y, SNo xSNo ySNo (x :/: y)
Axiom. (div_SNo_0_num) We take the following as an axiom:
∀x, SNo x0 :/: x = 0
Axiom. (div_SNo_0_denum) We take the following as an axiom:
∀x, SNo xx :/: 0 = 0
Axiom. (mul_div_SNo_invL) We take the following as an axiom:
∀x y, SNo xSNo yy0(x :/: y) * y = x
Axiom. (mul_div_SNo_invR) We take the following as an axiom:
∀x y, SNo xSNo yy0y * (x :/: y) = x
Axiom. (mul_div_SNo_R) We take the following as an axiom:
∀x y z, SNo xSNo ySNo z(x :/: y) * z = (x * z) :/: y
Axiom. (mul_div_SNo_L) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zz * (x :/: y) = (z * x) :/: y
Axiom. (div_mul_SNo_invL) We take the following as an axiom:
∀x y, SNo xSNo yy0(x * y) :/: y = x
Axiom. (div_div_SNo) We take the following as an axiom:
∀x y z, SNo xSNo ySNo z(x :/: y) :/: z = x :/: (y * z)
Axiom. (mul_div_SNo_both) We take the following as an axiom:
∀x y z w, SNo xSNo ySNo zSNo w(x :/: y) * (z :/: w) = (x * z) :/: (y * w)
Axiom. (recip_SNo_pos_pos) We take the following as an axiom:
∀x, SNo x0 < x0 < recip_SNo_pos x
Axiom. (recip_SNo_of_neg_is_neg) We take the following as an axiom:
∀x, SNo xx < 0recip_SNo x < 0
Axiom. (div_SNo_pos_pos) We take the following as an axiom:
∀x y, SNo xSNo y0 < x0 < y0 < x :/: y
Axiom. (div_SNo_neg_neg) We take the following as an axiom:
∀x y, SNo xSNo yx < 0y < 00 < x :/: y
Axiom. (div_SNo_pos_neg) We take the following as an axiom:
∀x y, SNo xSNo y0 < xy < 0x :/: y < 0
Axiom. (div_SNo_neg_pos) We take the following as an axiom:
∀x y, SNo xSNo yx < 00 < yx :/: y < 0
Axiom. (div_SNo_pos_LtL) We take the following as an axiom:
∀x y z, SNo xSNo ySNo z0 < yx < z * yx :/: y < z
Axiom. (div_SNo_pos_LtR) We take the following as an axiom:
∀x y z, SNo xSNo ySNo z0 < yz * y < xz < x :/: y
Axiom. (div_SNo_pos_LtL') We take the following as an axiom:
∀x y z, SNo xSNo ySNo z0 < yx :/: y < zx < z * y
Axiom. (div_SNo_pos_LtR') We take the following as an axiom:
∀x y z, SNo xSNo ySNo z0 < yz < x :/: yz * y < x
Axiom. (mul_div_SNo_nonzero_eq) We take the following as an axiom:
∀x y z, SNo xSNo ySNo zy0x = y * zx :/: y = z
End of Section SurrealDiv