- n2s_primitive_def
-
⊢ n2s =
WFREC
(@R.
WF R ∧
∀n r0 r.
n ≠ 0 ∧ r0 = n MOD 256 ∧ r = (if r0 = 0 then 256 else r0) ⇒
R ((n − r) DIV 256) n)
(λn2s a.
I
(if a = 0 then ""
else
(let
r0 = a MOD 256 ;
r = if r0 = 0 then 256 else r0 ;
s0 = n2s ((a − r) DIV 256)
in
STRING (CHR (r − 1)) s0)))
- s2n_def
-
⊢ s2n "" = 0 ∧ ∀c s. s2n (STRING c s) = s2n s * 256 + ORD c + 1
- n2nsum_def
-
⊢ ∀n. n2nsum n = if ODD n then INL (n DIV 2) else INR (n DIV 2)
- nsum2n_def
-
⊢ (∀n. nsum2n (INL n) = 2 * n + 1) ∧ ∀n. nsum2n (INR n) = 2 * n
- s2ssum_def
-
⊢ ∀s. s2ssum s = (n2s ++ n2s) (n2nsum (s2n s))
- ssum2s_def
-
⊢ ∀sm. ssum2s sm = n2s (nsum2n ((s2n ++ s2n) sm))