init commit again

This commit is contained in:
Peter
2023-11-01 09:29:33 +01:00
parent 448147e7da
commit d6c745207b
250 changed files with 15552 additions and 1 deletions

View File

@@ -0,0 +1,230 @@
### Integers
[
Type integers Alias ints
Type integers-from Alias from
Type integers-up-to Alias up-to
Type bounded-integers Alias bounded-ints
Type positive-integers Alias pos-ints
Type negative-integers Alias neg-ints
Type natural-numbers Alias nats
Funcon natural-successor Alias nat-succ
Funcon natural-predecessor Alias nat-pred
Funcon integer-add Alias int-add
Funcon integer-subtract Alias int-sub
Funcon integer-multiply Alias int-mul
Funcon integer-divide Alias int-div
Funcon integer-modulo Alias int-mod
Funcon integer-power Alias int-pow
Funcon integer-absolute-value Alias int-abs
Funcon integer-negate Alias int-neg
Funcon integer-is-less Alias is-less
Funcon integer-is-less-or-equal Alias is-less-or-equal
Funcon integer-is-greater Alias is-greater
Funcon integer-is-greater-or-equal Alias is-greater-or-equal
Funcon binary-natural Alias binary
Funcon octal-natural Alias octal
Funcon decimal-natural Alias decimal
Funcon hexadecimal-natural Alias hexadecimal
Funcon integer-sequence
]
Built-in Type
integers
Alias
ints = integers
/*
`integers` is the type of unbounded integers. Decimal notation is used to
express particular integer values.
*/
#### Subtypes of integers
Built-in Type
integers-from(_:integers) <: integers
Alias
from = integers-from
/*
`integers-from(M)` is the subtype of integers greater than or equal to `M`.
*/
Built-in Type
integers-up-to(_:integers) <: integers
Alias
up-to = integers-up-to
/*
`integers-up-to(N)` is the subtype of integers less than or equal to `N`.
*/
Type
bounded-integers(M:integers, N:integers)
~> integers-from(M) & integers-up-to(N)
Alias
bounded-ints = bounded-integers
/*
`bounded-integers(M,N)` is the subtype of integers from `M` to `N`, inclusive.
*/
Type
positive-integers ~> integers-from(1)
Alias
pos-ints = positive-integers
Type
negative-integers ~> integers-up-to(-1)
Alias
neg-ints = negative-integers
#### Natural numbers
Type
natural-numbers ~> integers-from(0)
Alias
nats = natural-numbers
Built-in Funcon
natural-successor(N:natural-numbers) : =>natural-numbers
Alias
nat-succ = natural-successor
Built-in Funcon
natural-predecessor(_:natural-numbers) : =>natural-numbers?
Alias
nat-pred = natural-predecessor
Assert
natural-predecessor(0) == ( )
#### Arithmetic
Built-in Funcon
integer-add(_:integers*) : =>integers
Alias
int-add = integer-add
Built-in Funcon
integer-subtract(_:integers, _:integers) : =>integers
Alias
int-sub = integer-subtract
Built-in Funcon
integer-multiply(_:integers*) : =>integers
Alias
int-mul = integer-multiply
Built-in Funcon
integer-divide(_:integers, _:integers) : =>integers?
Alias
int-div = integer-divide
Assert
integer-divide(_:integers, 0) == ( )
Built-in Funcon
integer-modulo(_:integers, _:integers) : =>integers?
Alias
int-mod = integer-modulo
Assert
integer-modulo(_:integers, 0) == ( )
Built-in Funcon
integer-power(_:integers, _:natural-numbers) : =>integers
Alias
int-pow = integer-power
Built-in Funcon
integer-absolute-value(_:integers) : =>natural-numbers
Alias
int-abs = integer-absolute-value
Funcon
integer-negate(N:integers) : =>integers
~> integer-subtract(0, N)
Alias
int-neg = integer-negate
#### Comparison
Built-in Funcon
integer-is-less(_:integers, _:integers) : =>booleans
Alias
is-less = integer-is-less
Built-in Funcon
integer-is-less-or-equal(_:integers, _:integers) : =>booleans
Alias
is-less-or-equal = integer-is-less-or-equal
Built-in Funcon
integer-is-greater(_:integers, _:integers) : =>booleans
Alias
is-greater = integer-is-greater
Built-in Funcon
integer-is-greater-or-equal(_:integers, _:integers) : =>booleans
Alias
is-greater-or-equal = integer-is-greater-or-equal
#### Conversion
Built-in Funcon
binary-natural(_:strings) : =>natural-numbers?
Alias
binary = binary-natural
Built-in Funcon
octal-natural(_:strings) : =>natural-numbers?
Alias
octal = octal-natural
Built-in Funcon
decimal-natural(_:strings) : =>natural-numbers?
Alias
decimal = decimal-natural
/*
Literal natural numbers `N` are equivalent to `decimal-natural"N"`.
*/
Built-in Funcon
hexadecimal-natural(_:strings) : =>natural-numbers?
Alias
hexadecimal = hexadecimal-natural
Funcon
integer-sequence(_:integers, _:integers) : =>integers*
/*
`integer-sequence(M, N)` is the seqeunce of integers from `M` to `N`,
except that if `M` is greater than `N`, it is the empty sequence.
*/
Rule
is-greater(M, N) == false
------------------------------------------------
integer-sequence(M:integers, N:integers)
~> (M, integer-sequence(integer-add(M, 1), N))
Rule
is-greater(M, N) == true
-----------------------------------------------
integer-sequence(M:integers, N:integers) ~> ( )

View File

@@ -0,0 +1,263 @@
---
layout: default
title: "Integers"
parent: Primitive
ancestor: Funcons-beta
---
[Funcons-beta] : [Integers.cbs]
-----------------------------
### Integers
<div class="highlighter-rouge"><pre class="highlight"><code>[
<i class="keyword">Type</i> <span class="name"><a href="#Name_integers">integers</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_ints">ints</a></span>
<i class="keyword">Type</i> <span class="name"><a href="#Name_integers-from">integers-from</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_from">from</a></span>
<i class="keyword">Type</i> <span class="name"><a href="#Name_integers-up-to">integers-up-to</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_up-to">up-to</a></span>
<i class="keyword">Type</i> <span class="name"><a href="#Name_bounded-integers">bounded-integers</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_bounded-ints">bounded-ints</a></span>
<i class="keyword">Type</i> <span class="name"><a href="#Name_positive-integers">positive-integers</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_pos-ints">pos-ints</a></span>
<i class="keyword">Type</i> <span class="name"><a href="#Name_negative-integers">negative-integers</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_neg-ints">neg-ints</a></span>
<i class="keyword">Type</i> <span class="name"><a href="#Name_natural-numbers">natural-numbers</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_nats">nats</a></span>
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_natural-successor">natural-successor</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_nat-succ">nat-succ</a></span>
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_natural-predecessor">natural-predecessor</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_nat-pred">nat-pred</a></span>
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_integer-add">integer-add</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_int-add">int-add</a></span>
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_integer-subtract">integer-subtract</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_int-sub">int-sub</a></span>
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_integer-multiply">integer-multiply</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_int-mul">int-mul</a></span>
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_integer-divide">integer-divide</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_int-div">int-div</a></span>
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_integer-modulo">integer-modulo</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_int-mod">int-mod</a></span>
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_integer-power">integer-power</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_int-pow">int-pow</a></span>
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_integer-absolute-value">integer-absolute-value</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_int-abs">int-abs</a></span>
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_integer-negate">integer-negate</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_int-neg">int-neg</a></span>
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_integer-is-less">integer-is-less</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_is-less">is-less</a></span>
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_integer-is-less-or-equal">integer-is-less-or-equal</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_is-less-or-equal">is-less-or-equal</a></span>
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_integer-is-greater">integer-is-greater</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_is-greater">is-greater</a></span>
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_integer-is-greater-or-equal">integer-is-greater-or-equal</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_is-greater-or-equal">is-greater-or-equal</a></span>
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_binary-natural">binary-natural</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_binary">binary</a></span>
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_octal-natural">octal-natural</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_octal">octal</a></span>
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_decimal-natural">decimal-natural</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_decimal">decimal</a></span>
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_hexadecimal-natural">hexadecimal-natural</a></span> <i class="keyword">Alias</i> <span class="name"><a href="#Name_hexadecimal">hexadecimal</a></span>
<i class="keyword">Funcon</i> <span class="name"><a href="#Name_integer-sequence">integer-sequence</a></span>
]</code></pre></div>
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Type</i>
<span class="name"><span id="Name_integers">integers</span></span>
<i class="keyword">Alias</i>
<span class="name"><span id="Name_ints">ints</span></span> = <span class="name"><a href="#Name_integers">integers</a></span></code></pre></div>
<code><span class="name"><a href="#Name_integers">integers</a></span></code> is the type of unbounded integers. Decimal notation is used to
express particular integer values.
#### Subtypes of integers
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Type</i>
<span class="name"><span id="Name_integers-from">integers-from</span></span>(_:<span class="name"><a href="#Name_integers">integers</a></span>) <: <span class="name"><a href="#Name_integers">integers</a></span>
<i class="keyword">Alias</i>
<span class="name"><span id="Name_from">from</span></span> = <span class="name"><a href="#Name_integers-from">integers-from</a></span></code></pre></div>
<code><span class="name"><a href="#Name_integers-from">integers-from</a></span>(<i class="var">M</i>)</code> is the subtype of integers greater than or equal to <code><i class="var">M</i></code>.
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Type</i>
<span class="name"><span id="Name_integers-up-to">integers-up-to</span></span>(_:<span class="name"><a href="#Name_integers">integers</a></span>) <: <span class="name"><a href="#Name_integers">integers</a></span>
<i class="keyword">Alias</i>
<span class="name"><span id="Name_up-to">up-to</span></span> = <span class="name"><a href="#Name_integers-up-to">integers-up-to</a></span></code></pre></div>
<code><span class="name"><a href="#Name_integers-up-to">integers-up-to</a></span>(<i class="var">N</i>)</code> is the subtype of integers less than or equal to <code><i class="var">N</i></code>.
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Type</i>
<span class="name"><span id="Name_bounded-integers">bounded-integers</span></span>(<span id="Variable385_M"><i class="var">M</i></span>:<span class="name"><a href="#Name_integers">integers</a></span>, <span id="Variable394_N"><i class="var">N</i></span>:<span class="name"><a href="#Name_integers">integers</a></span>)
~> <span class="name"><a href="#Name_integers-from">integers-from</a></span>(<a href="#Variable385_M"><i class="var">M</i></a>) & <span class="name"><a href="#Name_integers-up-to">integers-up-to</a></span>(<a href="#Variable394_N"><i class="var">N</i></a>)
<i class="keyword">Alias</i>
<span class="name"><span id="Name_bounded-ints">bounded-ints</span></span> = <span class="name"><a href="#Name_bounded-integers">bounded-integers</a></span></code></pre></div>
<code><span class="name"><a href="#Name_bounded-integers">bounded-integers</a></span>(<i class="var">M</i>,<i class="var">N</i>)</code> is the subtype of integers from <code><i class="var">M</i></code> to <code><i class="var">N</i></code>, inclusive.
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Type</i>
<span class="name"><span id="Name_positive-integers">positive-integers</span></span> ~> <span class="name"><a href="#Name_integers-from">integers-from</a></span>(1)
<i class="keyword">Alias</i>
<span class="name"><span id="Name_pos-ints">pos-ints</span></span> = <span class="name"><a href="#Name_positive-integers">positive-integers</a></span></code></pre></div>
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Type</i>
<span class="name"><span id="Name_negative-integers">negative-integers</span></span> ~> <span class="name"><a href="#Name_integers-up-to">integers-up-to</a></span>(-1)
<i class="keyword">Alias</i>
<span class="name"><span id="Name_neg-ints">neg-ints</span></span> = <span class="name"><a href="#Name_negative-integers">negative-integers</a></span></code></pre></div>
#### Natural numbers
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Type</i>
<span class="name"><span id="Name_natural-numbers">natural-numbers</span></span> ~> <span class="name"><a href="#Name_integers-from">integers-from</a></span>(0)
<i class="keyword">Alias</i>
<span class="name"><span id="Name_nats">nats</span></span> = <span class="name"><a href="#Name_natural-numbers">natural-numbers</a></span></code></pre></div>
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
<span class="name"><span id="Name_natural-successor">natural-successor</span></span>(<span id="Variable582_N"><i class="var">N</i></span>:<span class="name"><a href="#Name_natural-numbers">natural-numbers</a></span>) : =><span class="name"><a href="#Name_natural-numbers">natural-numbers</a></span>
<i class="keyword">Alias</i>
<span class="name"><span id="Name_nat-succ">nat-succ</span></span> = <span class="name"><a href="#Name_natural-successor">natural-successor</a></span></code></pre></div>
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
<span class="name"><span id="Name_natural-predecessor">natural-predecessor</span></span>(_:<span class="name"><a href="#Name_natural-numbers">natural-numbers</a></span>) : =><span class="name"><a href="#Name_natural-numbers">natural-numbers</a></span><sup class="sup">?</sup>
<i class="keyword">Alias</i>
<span class="name"><span id="Name_nat-pred">nat-pred</span></span> = <span class="name"><a href="#Name_natural-predecessor">natural-predecessor</a></span></code></pre></div>
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Assert</i>
<span class="name"><a href="#Name_natural-predecessor">natural-predecessor</a></span>(0) == ( )</code></pre></div>
#### Arithmetic
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
<span class="name"><span id="Name_integer-add">integer-add</span></span>(_:<span class="name"><a href="#Name_integers">integers</a></span><sup class="sup">*</sup>) : =><span class="name"><a href="#Name_integers">integers</a></span>
<i class="keyword">Alias</i>
<span class="name"><span id="Name_int-add">int-add</span></span> = <span class="name"><a href="#Name_integer-add">integer-add</a></span></code></pre></div>
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
<span class="name"><span id="Name_integer-subtract">integer-subtract</span></span>(_:<span class="name"><a href="#Name_integers">integers</a></span>, _:<span class="name"><a href="#Name_integers">integers</a></span>) : =><span class="name"><a href="#Name_integers">integers</a></span>
<i class="keyword">Alias</i>
<span class="name"><span id="Name_int-sub">int-sub</span></span> = <span class="name"><a href="#Name_integer-subtract">integer-subtract</a></span></code></pre></div>
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
<span class="name"><span id="Name_integer-multiply">integer-multiply</span></span>(_:<span class="name"><a href="#Name_integers">integers</a></span><sup class="sup">*</sup>) : =><span class="name"><a href="#Name_integers">integers</a></span>
<i class="keyword">Alias</i>
<span class="name"><span id="Name_int-mul">int-mul</span></span> = <span class="name"><a href="#Name_integer-multiply">integer-multiply</a></span></code></pre></div>
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
<span class="name"><span id="Name_integer-divide">integer-divide</span></span>(_:<span class="name"><a href="#Name_integers">integers</a></span>, _:<span class="name"><a href="#Name_integers">integers</a></span>) : =><span class="name"><a href="#Name_integers">integers</a></span><sup class="sup">?</sup>
<i class="keyword">Alias</i>
<span class="name"><span id="Name_int-div">int-div</span></span> = <span class="name"><a href="#Name_integer-divide">integer-divide</a></span></code></pre></div>
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Assert</i>
<span class="name"><a href="#Name_integer-divide">integer-divide</a></span>(_:<span class="name"><a href="#Name_integers">integers</a></span>, 0) == ( )</code></pre></div>
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
<span class="name"><span id="Name_integer-modulo">integer-modulo</span></span>(_:<span class="name"><a href="#Name_integers">integers</a></span>, _:<span class="name"><a href="#Name_integers">integers</a></span>) : =><span class="name"><a href="#Name_integers">integers</a></span><sup class="sup">?</sup>
<i class="keyword">Alias</i>
<span class="name"><span id="Name_int-mod">int-mod</span></span> = <span class="name"><a href="#Name_integer-modulo">integer-modulo</a></span></code></pre></div>
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Assert</i>
<span class="name"><a href="#Name_integer-modulo">integer-modulo</a></span>(_:<span class="name"><a href="#Name_integers">integers</a></span>, 0) == ( )</code></pre></div>
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
<span class="name"><span id="Name_integer-power">integer-power</span></span>(_:<span class="name"><a href="#Name_integers">integers</a></span>, _:<span class="name"><a href="#Name_natural-numbers">natural-numbers</a></span>) : =><span class="name"><a href="#Name_integers">integers</a></span>
<i class="keyword">Alias</i>
<span class="name"><span id="Name_int-pow">int-pow</span></span> = <span class="name"><a href="#Name_integer-power">integer-power</a></span></code></pre></div>
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
<span class="name"><span id="Name_integer-absolute-value">integer-absolute-value</span></span>(_:<span class="name"><a href="#Name_integers">integers</a></span>) : =><span class="name"><a href="#Name_natural-numbers">natural-numbers</a></span>
<i class="keyword">Alias</i>
<span class="name"><span id="Name_int-abs">int-abs</span></span> = <span class="name"><a href="#Name_integer-absolute-value">integer-absolute-value</a></span></code></pre></div>
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Funcon</i>
<span class="name"><span id="Name_integer-negate">integer-negate</span></span>(<span id="Variable921_N"><i class="var">N</i></span>:<span class="name"><a href="#Name_integers">integers</a></span>) : =><span class="name"><a href="#Name_integers">integers</a></span>
~> <span class="name"><a href="#Name_integer-subtract">integer-subtract</a></span>(0, <a href="#Variable921_N"><i class="var">N</i></a>)
<i class="keyword">Alias</i>
<span class="name"><span id="Name_int-neg">int-neg</span></span> = <span class="name"><a href="#Name_integer-negate">integer-negate</a></span></code></pre></div>
#### Comparison
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
<span class="name"><span id="Name_integer-is-less">integer-is-less</span></span>(_:<span class="name"><a href="#Name_integers">integers</a></span>, _:<span class="name"><a href="#Name_integers">integers</a></span>) : =><span class="name"><a href="../Booleans/index.html#Name_booleans">booleans</a></span>
<i class="keyword">Alias</i>
<span class="name"><span id="Name_is-less">is-less</span></span> = <span class="name"><a href="#Name_integer-is-less">integer-is-less</a></span></code></pre></div>
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
<span class="name"><span id="Name_integer-is-less-or-equal">integer-is-less-or-equal</span></span>(_:<span class="name"><a href="#Name_integers">integers</a></span>, _:<span class="name"><a href="#Name_integers">integers</a></span>) : =><span class="name"><a href="../Booleans/index.html#Name_booleans">booleans</a></span>
<i class="keyword">Alias</i>
<span class="name"><span id="Name_is-less-or-equal">is-less-or-equal</span></span> = <span class="name"><a href="#Name_integer-is-less-or-equal">integer-is-less-or-equal</a></span></code></pre></div>
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
<span class="name"><span id="Name_integer-is-greater">integer-is-greater</span></span>(_:<span class="name"><a href="#Name_integers">integers</a></span>, _:<span class="name"><a href="#Name_integers">integers</a></span>) : =><span class="name"><a href="../Booleans/index.html#Name_booleans">booleans</a></span>
<i class="keyword">Alias</i>
<span class="name"><span id="Name_is-greater">is-greater</span></span> = <span class="name"><a href="#Name_integer-is-greater">integer-is-greater</a></span></code></pre></div>
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
<span class="name"><span id="Name_integer-is-greater-or-equal">integer-is-greater-or-equal</span></span>(_:<span class="name"><a href="#Name_integers">integers</a></span>, _:<span class="name"><a href="#Name_integers">integers</a></span>) : =><span class="name"><a href="../Booleans/index.html#Name_booleans">booleans</a></span>
<i class="keyword">Alias</i>
<span class="name"><span id="Name_is-greater-or-equal">is-greater-or-equal</span></span> = <span class="name"><a href="#Name_integer-is-greater-or-equal">integer-is-greater-or-equal</a></span></code></pre></div>
#### Conversion
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
<span class="name"><span id="Name_binary-natural">binary-natural</span></span>(_:<span class="name"><a href="../../Composite/Strings/index.html#Name_strings">strings</a></span>) : =><span class="name"><a href="#Name_natural-numbers">natural-numbers</a></span><sup class="sup">?</sup>
<i class="keyword">Alias</i>
<span class="name"><span id="Name_binary">binary</span></span> = <span class="name"><a href="#Name_binary-natural">binary-natural</a></span></code></pre></div>
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
<span class="name"><span id="Name_octal-natural">octal-natural</span></span>(_:<span class="name"><a href="../../Composite/Strings/index.html#Name_strings">strings</a></span>) : =><span class="name"><a href="#Name_natural-numbers">natural-numbers</a></span><sup class="sup">?</sup>
<i class="keyword">Alias</i>
<span class="name"><span id="Name_octal">octal</span></span> = <span class="name"><a href="#Name_octal-natural">octal-natural</a></span></code></pre></div>
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
<span class="name"><span id="Name_decimal-natural">decimal-natural</span></span>(_:<span class="name"><a href="../../Composite/Strings/index.html#Name_strings">strings</a></span>) : =><span class="name"><a href="#Name_natural-numbers">natural-numbers</a></span><sup class="sup">?</sup>
<i class="keyword">Alias</i>
<span class="name"><span id="Name_decimal">decimal</span></span> = <span class="name"><a href="#Name_decimal-natural">decimal-natural</a></span></code></pre></div>
Literal natural numbers <code><i class="var">N</i></code> are equivalent to <code><span class="name"><a href="#Name_decimal-natural">decimal-natural</a></span>"N"</code>.
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Built-in</i> <i class="keyword">Funcon</i>
<span class="name"><span id="Name_hexadecimal-natural">hexadecimal-natural</span></span>(_:<span class="name"><a href="../../Composite/Strings/index.html#Name_strings">strings</a></span>) : =><span class="name"><a href="#Name_natural-numbers">natural-numbers</a></span><sup class="sup">?</sup>
<i class="keyword">Alias</i>
<span class="name"><span id="Name_hexadecimal">hexadecimal</span></span> = <span class="name"><a href="#Name_hexadecimal-natural">hexadecimal-natural</a></span></code></pre></div>
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Funcon</i>
<span class="name"><span id="Name_integer-sequence">integer-sequence</span></span>(_:<span class="name"><a href="#Name_integers">integers</a></span>, _:<span class="name"><a href="#Name_integers">integers</a></span>) : =><span class="name"><a href="#Name_integers">integers</a></span><sup class="sup">*</sup></code></pre></div>
<code><span class="name"><a href="#Name_integer-sequence">integer-sequence</a></span>(<i class="var">M</i>, <i class="var">N</i>)</code> is the seqeunce of integers from <code><i class="var">M</i></code> to <code><i class="var">N</i></code>,
except that if <code><i class="var">M</i></code> is greater than <code><i class="var">N</i></code>, it is the empty sequence.
<div class="highlighter-rouge"><pre class="highlight"><code><i class="keyword">Rule</i>
<span class="name"><a href="#Name_is-greater">is-greater</a></span>(<a href="#Variable1410_M"><i class="var">M</i></a>, <a href="#Variable1418_N"><i class="var">N</i></a>) == <span class="name"><a href="../Booleans/index.html#Name_false">false</a></span>
------------------------------------------------
<span class="name"><a href="#Name_integer-sequence">integer-sequence</a></span>(<span id="Variable1410_M"><i class="var">M</i></span>:<span class="name"><a href="#Name_integers">integers</a></span>, <span id="Variable1418_N"><i class="var">N</i></span>:<span class="name"><a href="#Name_integers">integers</a></span>)
~> (<a href="#Variable1410_M"><i class="var">M</i></a>, <span class="name"><a href="#Name_integer-sequence">integer-sequence</a></span>(<span class="name"><a href="#Name_integer-add">integer-add</a></span>(<a href="#Variable1410_M"><i class="var">M</i></a>, 1), <a href="#Variable1418_N"><i class="var">N</i></a>))
<i class="keyword">Rule</i>
<span class="name"><a href="#Name_is-greater">is-greater</a></span>(<a href="#Variable1501_M"><i class="var">M</i></a>, <a href="#Variable1509_N"><i class="var">N</i></a>) == <span class="name"><a href="../Booleans/index.html#Name_true">true</a></span>
-----------------------------------------------
<span class="name"><a href="#Name_integer-sequence">integer-sequence</a></span>(<span id="Variable1501_M"><i class="var">M</i></span>:<span class="name"><a href="#Name_integers">integers</a></span>, <span id="Variable1509_N"><i class="var">N</i></span>:<span class="name"><a href="#Name_integers">integers</a></span>) ~> ( )</code></pre></div>
____
From the [PLanCompS Project] | [CBS-beta issues...] | [Suggest an improvement...]
[Integers.cbs]: Integers.cbs
"CBS SOURCE FILE"
[Funcons-beta]: /CBS-beta/docs/Funcons-beta
"FUNCONS-BETA"
[Unstable-Funcons-beta]: /CBS-beta/docs/Unstable-Funcons-beta
"UNSTABLE-FUNCONS-BETA"
[Languages-beta]: /CBS-beta/docs/Languages-beta
"LANGUAGES-BETA"
[Unstable-Languages-beta]: /CBS-beta/docs/Unstable-Languages-beta
"UNSTABLE-LANGUAGES-BETA"
[CBS-beta]: /CBS-beta "CBS-BETA"
[PLanCompS Project]: https://plancomps.github.io
"PROGRAMMING LANGUAGE COMPONENTS AND SPECIFICATIONS PROJECT HOME PAGE"
[CBS-beta issues...]: https://github.com/plancomps/CBS-beta/issues
"CBS-BETA ISSUE REPORTS ON GITHUB"
[Suggest an improvement...]: mailto:plancomps@gmail.com?Subject=CBS-beta%20-%20comment&Body=Re%3A%20CBS-beta%20specification%20at%20Values/Primitive/Integers/Integers.cbs%0A%0AComment/Query/Issue/Suggestion%3A%0A%0A%0ASignature%3A%0A
"GENERATE AN EMAIL TEMPLATE"