Metamath Proof Explorer


Theorem addhalfcut

Description: The cut of a surreal non-negative integer and its successor is the original number plus one half. Part of theorem 4.2 of Gonshor p. 30. (Contributed by Scott Fenton, 13-Aug-2025)

Ref Expression
Hypothesis addhalfcut.1 ( 𝜑𝐴 ∈ ℕ0s )
Assertion addhalfcut ( 𝜑 → ( { 𝐴 } |s { ( 𝐴 +s 1s ) } ) = ( 𝐴 +s ( 1s /su 2s ) ) )

Proof

Step Hyp Ref Expression
1 addhalfcut.1 ( 𝜑𝐴 ∈ ℕ0s )
2 1 n0snod ( 𝜑𝐴 No )
3 1sno 1s No
4 3 a1i ( 𝜑 → 1s No )
5 2 4 addscld ( 𝜑 → ( 𝐴 +s 1s ) ∈ No )
6 2 sltp1d ( 𝜑𝐴 <s ( 𝐴 +s 1s ) )
7 no2times ( 𝐴 No → ( 2s ·s 𝐴 ) = ( 𝐴 +s 𝐴 ) )
8 2 7 syl ( 𝜑 → ( 2s ·s 𝐴 ) = ( 𝐴 +s 𝐴 ) )
9 8 oveq1d ( 𝜑 → ( ( 2s ·s 𝐴 ) +s 1s ) = ( ( 𝐴 +s 𝐴 ) +s 1s ) )
10 2 2 4 addsassd ( 𝜑 → ( ( 𝐴 +s 𝐴 ) +s 1s ) = ( 𝐴 +s ( 𝐴 +s 1s ) ) )
11 9 10 eqtr2d ( 𝜑 → ( 𝐴 +s ( 𝐴 +s 1s ) ) = ( ( 2s ·s 𝐴 ) +s 1s ) )
12 2nns 2s ∈ ℕs
13 nnn0s ( 2s ∈ ℕs → 2s ∈ ℕ0s )
14 12 13 ax-mp 2s ∈ ℕ0s
15 14 a1i ( 𝜑 → 2s ∈ ℕ0s )
16 n0mulscl ( ( 2s ∈ ℕ0s𝐴 ∈ ℕ0s ) → ( 2s ·s 𝐴 ) ∈ ℕ0s )
17 15 1 16 syl2anc ( 𝜑 → ( 2s ·s 𝐴 ) ∈ ℕ0s )
18 1n0s 1s ∈ ℕ0s
19 18 a1i ( 𝜑 → 1s ∈ ℕ0s )
20 n0addscl ( ( ( 2s ·s 𝐴 ) ∈ ℕ0s ∧ 1s ∈ ℕ0s ) → ( ( 2s ·s 𝐴 ) +s 1s ) ∈ ℕ0s )
21 17 19 20 syl2anc ( 𝜑 → ( ( 2s ·s 𝐴 ) +s 1s ) ∈ ℕ0s )
22 n0scut ( ( ( 2s ·s 𝐴 ) +s 1s ) ∈ ℕ0s → ( ( 2s ·s 𝐴 ) +s 1s ) = ( { ( ( ( 2s ·s 𝐴 ) +s 1s ) -s 1s ) } |s ∅ ) )
23 21 22 syl ( 𝜑 → ( ( 2s ·s 𝐴 ) +s 1s ) = ( { ( ( ( 2s ·s 𝐴 ) +s 1s ) -s 1s ) } |s ∅ ) )
24 2sno 2s No
25 24 a1i ( 𝜑 → 2s No )
26 25 2 mulscld ( 𝜑 → ( 2s ·s 𝐴 ) ∈ No )
27 pncans ( ( ( 2s ·s 𝐴 ) ∈ No ∧ 1s No ) → ( ( ( 2s ·s 𝐴 ) +s 1s ) -s 1s ) = ( 2s ·s 𝐴 ) )
28 26 4 27 syl2anc ( 𝜑 → ( ( ( 2s ·s 𝐴 ) +s 1s ) -s 1s ) = ( 2s ·s 𝐴 ) )
29 28 sneqd ( 𝜑 → { ( ( ( 2s ·s 𝐴 ) +s 1s ) -s 1s ) } = { ( 2s ·s 𝐴 ) } )
30 29 oveq1d ( 𝜑 → ( { ( ( ( 2s ·s 𝐴 ) +s 1s ) -s 1s ) } |s ∅ ) = ( { ( 2s ·s 𝐴 ) } |s ∅ ) )
31 23 30 eqtrd ( 𝜑 → ( ( 2s ·s 𝐴 ) +s 1s ) = ( { ( 2s ·s 𝐴 ) } |s ∅ ) )
32 snelpwi ( ( 2s ·s 𝐴 ) ∈ No → { ( 2s ·s 𝐴 ) } ∈ 𝒫 No )
33 nulssgt ( { ( 2s ·s 𝐴 ) } ∈ 𝒫 No → { ( 2s ·s 𝐴 ) } <<s ∅ )
34 26 32 33 3syl ( 𝜑 → { ( 2s ·s 𝐴 ) } <<s ∅ )
35 slerflex ( ( 2s ·s 𝐴 ) ∈ No → ( 2s ·s 𝐴 ) ≤s ( 2s ·s 𝐴 ) )
36 26 35 syl ( 𝜑 → ( 2s ·s 𝐴 ) ≤s ( 2s ·s 𝐴 ) )
37 ovex ( 2s ·s 𝐴 ) ∈ V
38 breq2 ( 𝑦 = ( 2s ·s 𝐴 ) → ( 𝑥 ≤s 𝑦𝑥 ≤s ( 2s ·s 𝐴 ) ) )
39 37 38 rexsn ( ∃ 𝑦 ∈ { ( 2s ·s 𝐴 ) } 𝑥 ≤s 𝑦𝑥 ≤s ( 2s ·s 𝐴 ) )
40 39 ralbii ( ∀ 𝑥 ∈ { ( 2s ·s 𝐴 ) } ∃ 𝑦 ∈ { ( 2s ·s 𝐴 ) } 𝑥 ≤s 𝑦 ↔ ∀ 𝑥 ∈ { ( 2s ·s 𝐴 ) } 𝑥 ≤s ( 2s ·s 𝐴 ) )
41 breq1 ( 𝑥 = ( 2s ·s 𝐴 ) → ( 𝑥 ≤s ( 2s ·s 𝐴 ) ↔ ( 2s ·s 𝐴 ) ≤s ( 2s ·s 𝐴 ) ) )
42 37 41 ralsn ( ∀ 𝑥 ∈ { ( 2s ·s 𝐴 ) } 𝑥 ≤s ( 2s ·s 𝐴 ) ↔ ( 2s ·s 𝐴 ) ≤s ( 2s ·s 𝐴 ) )
43 40 42 bitri ( ∀ 𝑥 ∈ { ( 2s ·s 𝐴 ) } ∃ 𝑦 ∈ { ( 2s ·s 𝐴 ) } 𝑥 ≤s 𝑦 ↔ ( 2s ·s 𝐴 ) ≤s ( 2s ·s 𝐴 ) )
44 36 43 sylibr ( 𝜑 → ∀ 𝑥 ∈ { ( 2s ·s 𝐴 ) } ∃ 𝑦 ∈ { ( 2s ·s 𝐴 ) } 𝑥 ≤s 𝑦 )
45 ral0 𝑥 ∈ ∅ ∃ 𝑦 ∈ { ( 2s ·s ( 𝐴 +s 1s ) ) } 𝑦 ≤s 𝑥
46 45 a1i ( 𝜑 → ∀ 𝑥 ∈ ∅ ∃ 𝑦 ∈ { ( 2s ·s ( 𝐴 +s 1s ) ) } 𝑦 ≤s 𝑥 )
47 26 4 addscld ( 𝜑 → ( ( 2s ·s 𝐴 ) +s 1s ) ∈ No )
48 26 sltp1d ( 𝜑 → ( 2s ·s 𝐴 ) <s ( ( 2s ·s 𝐴 ) +s 1s ) )
49 26 47 48 ssltsn ( 𝜑 → { ( 2s ·s 𝐴 ) } <<s { ( ( 2s ·s 𝐴 ) +s 1s ) } )
50 31 sneqd ( 𝜑 → { ( ( 2s ·s 𝐴 ) +s 1s ) } = { ( { ( 2s ·s 𝐴 ) } |s ∅ ) } )
51 49 50 breqtrd ( 𝜑 → { ( 2s ·s 𝐴 ) } <<s { ( { ( 2s ·s 𝐴 ) } |s ∅ ) } )
52 25 5 mulscld ( 𝜑 → ( 2s ·s ( 𝐴 +s 1s ) ) ∈ No )
53 4 sltp1d ( 𝜑 → 1s <s ( 1s +s 1s ) )
54 1p1e2s ( 1s +s 1s ) = 2s
55 53 54 breqtrdi ( 𝜑 → 1s <s 2s )
56 4 25 26 sltadd2d ( 𝜑 → ( 1s <s 2s ↔ ( ( 2s ·s 𝐴 ) +s 1s ) <s ( ( 2s ·s 𝐴 ) +s 2s ) ) )
57 55 56 mpbid ( 𝜑 → ( ( 2s ·s 𝐴 ) +s 1s ) <s ( ( 2s ·s 𝐴 ) +s 2s ) )
58 25 2 4 addsdid ( 𝜑 → ( 2s ·s ( 𝐴 +s 1s ) ) = ( ( 2s ·s 𝐴 ) +s ( 2s ·s 1s ) ) )
59 mulsrid ( 2s No → ( 2s ·s 1s ) = 2s )
60 24 59 ax-mp ( 2s ·s 1s ) = 2s
61 60 oveq2i ( ( 2s ·s 𝐴 ) +s ( 2s ·s 1s ) ) = ( ( 2s ·s 𝐴 ) +s 2s )
62 58 61 eqtrdi ( 𝜑 → ( 2s ·s ( 𝐴 +s 1s ) ) = ( ( 2s ·s 𝐴 ) +s 2s ) )
63 57 62 breqtrrd ( 𝜑 → ( ( 2s ·s 𝐴 ) +s 1s ) <s ( 2s ·s ( 𝐴 +s 1s ) ) )
64 47 52 63 ssltsn ( 𝜑 → { ( ( 2s ·s 𝐴 ) +s 1s ) } <<s { ( 2s ·s ( 𝐴 +s 1s ) ) } )
65 50 64 eqbrtrrd ( 𝜑 → { ( { ( 2s ·s 𝐴 ) } |s ∅ ) } <<s { ( 2s ·s ( 𝐴 +s 1s ) ) } )
66 34 44 46 51 65 cofcut1d ( 𝜑 → ( { ( 2s ·s 𝐴 ) } |s ∅ ) = ( { ( 2s ·s 𝐴 ) } |s { ( 2s ·s ( 𝐴 +s 1s ) ) } ) )
67 11 31 66 3eqtrrd ( 𝜑 → ( { ( 2s ·s 𝐴 ) } |s { ( 2s ·s ( 𝐴 +s 1s ) ) } ) = ( 𝐴 +s ( 𝐴 +s 1s ) ) )
68 eqid ( { 𝐴 } |s { ( 𝐴 +s 1s ) } ) = ( { 𝐴 } |s { ( 𝐴 +s 1s ) } )
69 2 5 6 67 68 halfcut ( 𝜑 → ( { 𝐴 } |s { ( 𝐴 +s 1s ) } ) = ( ( 𝐴 +s ( 𝐴 +s 1s ) ) /su 2s ) )
70 11 oveq1d ( 𝜑 → ( ( 𝐴 +s ( 𝐴 +s 1s ) ) /su 2s ) = ( ( ( 2s ·s 𝐴 ) +s 1s ) /su 2s ) )
71 2ne0s 2s ≠ 0s
72 71 a1i ( 𝜑 → 2s ≠ 0s )
73 26 4 25 72 divsdird ( 𝜑 → ( ( ( 2s ·s 𝐴 ) +s 1s ) /su 2s ) = ( ( ( 2s ·s 𝐴 ) /su 2s ) +s ( 1s /su 2s ) ) )
74 2 25 72 divscan3d ( 𝜑 → ( ( 2s ·s 𝐴 ) /su 2s ) = 𝐴 )
75 74 oveq1d ( 𝜑 → ( ( ( 2s ·s 𝐴 ) /su 2s ) +s ( 1s /su 2s ) ) = ( 𝐴 +s ( 1s /su 2s ) ) )
76 73 75 eqtrd ( 𝜑 → ( ( ( 2s ·s 𝐴 ) +s 1s ) /su 2s ) = ( 𝐴 +s ( 1s /su 2s ) ) )
77 69 70 76 3eqtrd ( 𝜑 → ( { 𝐴 } |s { ( 𝐴 +s 1s ) } ) = ( 𝐴 +s ( 1s /su 2s ) ) )