<table><thead><tr><th>N°</th><th>b</th><th>n</th><th>τ<sub>b</sub>(n)</th><th>Id<sup>†</sup><sub>b</sub>(n)</th></tr></thead><tbody><tr><td>56</td><td>24</td><td>7 451 = (12 | 22 | 11)<sub>2,24</sub></td><td>13 077 = (22 | 16 | 21)<sub>2,24</sub></td><td>(9, (1, 8))</td></tr><tr><td>57</td><td>46</td><td>7 585 = (3 | 26 | 41)<sub>2,46</sub></td><td>95 540 = (45 | 6 | 44)<sub>2,46</sub></td><td>(117, (10, 107))</td></tr><tr><td>58</td><td>40</td><td>7 654 = (4 | 31 | 14)<sub>2,40</sub></td><td>2 376 196 = (37 | 5 | 4 | 36)<sub>3,40</sub></td><td>(5, (1, 4))</td></tr><tr><td>59</td><td>51</td><td>7 745 = (2 | 49 | 44)<sub>2,51</sub></td><td>5 868 460 = (44 | 12 | 11 | 43)<sub>3,51</sub></td><td>(5, (1, 4))</td></tr><tr><td>60</td><td>24</td><td>7 976 = (13 | 20 | 8)<sub>2,24</sub></td><td>13 077 = (22 | 16 | 21)<sub>2,24</sub></td><td>(9, (1, 8))</td></tr><tr><td>61</td><td>24</td><td>8 026 = (13 | 22 | 10)<sub>2,24</sub></td><td>13 077 = (22 | 16 | 21)<sub>2,24</sub></td><td>(9, (1, 8))</td></tr><tr><td>62</td><td>24</td><td>8 551 = (14 | 20 | 7)<sub>2,24</sub></td><td>13 077 = (22 | 16 | 21)<sub>2,24</sub></td><td>(9, (1, 8))</td></tr><tr><td>63</td><td>24</td><td>8 601 = (14 | 22 | 9)<sub>2,24</sub></td><td>13 077 = (22 | 16 | 21)<sub>2,24</sub></td><td>(9, (1, 8))</td></tr><tr><td>64</td><td>40</td><td>8 912 = (5 | 22 | 32)<sub>2,40</sub></td><td>2 376 196 = (37 | 5 | 4 | 36)<sub>3,40</sub></td><td>(5, (1, 4))</td></tr><tr><td>65</td><td>24</td><td>9 126 = (15 | 20 | 6)<sub>2,24</sub></td><td>13 077 = (22 | 16 | 21)<sub>2,24</sub></td><td>(9, (1, 8))</td></tr><tr><td>66</td><td>24</td><td>9 176 = (15 | 22 | 8)<sub>2,24</sub></td><td>13 077 = (22 | 16 | 21)<sub>2,24</sub></td><td>(9, (1, 8))</td></tr><tr><td>67</td><td>40</td><td>9 253 = (5 | 31 | 13)<sub>2,40</sub></td><td>2 376 196 = (37 | 5 | 4 | 36)<sub>3,40</sub></td><td>(5, (1, 4))</td></tr><tr><td>68</td><td>46</td><td>9 700 = (4 | 26 | 40)<sub>2,46</sub></td><td>95 540 = (45 | 6 | 44)<sub>2,46</sub></td><td>(117, (10, 107))</td></tr><tr><td>69</td><td>24</td><td>9 701 = (16 | 20 | 5)<sub>2,24</sub></td><td>13 077 = (22 | 16 | 21)<sub>2,24</sub></td><td>(9, (1, 8))</td></tr><tr><td>70</td><td>24</td><td>9 751 = (16 | 22 | 7)<sub>2,24</sub></td><td>13 077 = (22 | 16 | 21)<sub>2,24</sub></td><td>(9, (1, 8))</td></tr><tr><td>71</td><td>24</td><td>10 276 = (17 | 20 | 4)<sub>2,24</sub></td><td>13 077 = (22 | 16 | 21)<sub>2,24</sub></td><td>(9, (1, 8))</td></tr><tr><td>72</td><td>24</td><td>10 326 = (17 | 22 | 6)<sub>2,24</sub></td><td>13 077 = (22 | 16 | 21)<sub>2,24</sub></td><td>(9, (1, 8))</td></tr><tr><td>73</td><td>51</td><td>10 345 = (3 | 49 | 43)<sub>2,51</sub></td><td>5 868 460 = (44 | 12 | 11 | 43)<sub>3,51</sub></td><td>(5, (1, 4))</td></tr></tbody></table>
### A.4 Breton Numbers and Multicelt Numbers

* **Small Breton Numbers.** The first integer that is Breton in a given base is:

$$n := 13\,077 = (22 \mid 16 \mid 21)_{2,24} \ , \ \mathrm{Id}_{24}^{\dagger}(13\,077) = (1,8). \qquad (112)$$

The next one seems to be (there might be others, I haven't tested all possibilities):

$$n := 95\,540 = (45 \mid 6 \mid 44)_{2,46} \ , \ \mathrm{Id}_{46}^{\dagger}(95\,540) = (10,107). \qquad (113)$$

* **Small Multicelt Numbers.** There are also integers that are celt for several different bases, we call them multicelt. Here are the first five I found (there might be others, as I didn't test all the bases but only those less than 100):

♠ $n := 39\,881$. It is celt for the following two bases:

⊤ $b := 11$, we have:

$$\mathrm{Id}_{11}^{\dagger}(n) = (1,4) \ , \ \tau_{11}(n) = (9 \mid 3 \mid 10 \mid 2 \mid 8)_{4,11};$$

⊤ $b := 28$, we have:

$$\mathrm{Id}_{28}^{\dagger}(n) = (1,4) \ , \ \tau_{28}(n) = (22 \mid 10 \mid 9 \mid 21)_{3,28}.$$

♠ $n := 58\,481$. It is celt for the following two bases:

⊤ $b := 11$, we have:

$$\mathrm{Id}_{11}^{\dagger}(n) = (1,4) \ , \ \tau_{11}(n) = (9 \mid 3 \mid 10 \mid 2 \mid 8)_{4,11};$$

⊤ $b := 40$, we have:

$$\mathrm{Id}_{40}^{\dagger}(n) = (1,4) \ , \ \tau_{40}(n) = (37 \mid 5 \mid 4 \mid 36)_{3,40}.$$

♠ $n := 488\,789$. It is celt for the following two bases:

⊤ $b := 28$, we have:

$$\mathrm{Id}_{28}^{\dagger}(n) = (1,4) \ , \ \tau_{28}(n) = (22 \mid 10 \mid 9 \mid 21)_{3,28};$$

⊤ $b := 40$, we have:

$$\mathrm{Id}_{40}^{\dagger}(n) = (1,4) \ , \ \tau_{40}(n) = (37 \mid 5 \mid 4 \mid 36)_{3,40}.$$

♠ $n := 755\,705$. It is celt for the following two bases:

⊤ $b := 40$, we have:

$$\mathrm{Id}_{40}^{\dagger}(n) = (1,4) \ , \ \tau_{40}(n) = (37 \mid 5 \mid 4 \mid 36)_{3,40};$$

⊤ $b := 51$, we have:

$$\mathrm{Id}_{51}^{\dagger}(n) = (1,4) \ , \ \tau_{51}(n) = (44 \mid 12 \mid 11 \mid 43)_{3,51}.$$

♠ $n := 886\,227$. It is celt for the following two bases:

⊤ $b := 19$, we have:

$$\mathrm{Id}_{19}^{\dagger}(n) = (1,4) \ , \ \tau_{19}(n) = (16 \mid 5 \mid 13 \mid 13 \mid 4 \mid 15)_{5,19};$$

⊤ $b := 86$, we have:

$$\mathrm{Id}_{86}^{\dagger}(n) = (4,22) \ , \ \tau_{86}(n) = (85 \mid 18 \mid 17 \mid 84)_{3,86}.$$
## A.5 Sicilian Numbers in Base 66

The base $b := 66$ contains many integers that seem to be neither Norman nor celt. In this subsection, we only consider degree 2 numbers in base 66 that appear to be Quebecois, of which there are 16 classes.

Here is their list:

<table><thead><tr><th>N°</th><th>n</th></tr></thead><tbody><tr><td>1</td><td>281 028 = (64 | 34 | 0)<sub>2,66</sub></td></tr><tr><td>2</td><td>281 424 = (64 | 40 | 0)<sub>2,66</sub></td></tr><tr><td>3</td><td>282 216 = (64 | 52 | 0)<sub>2,66</sub></td></tr><tr><td>4</td><td>282 282 = (64 | 53 | 0)<sub>2,66</sub></td></tr><tr><td>5</td><td>282 546 = (64 | 57 | 0)<sub>2,66</sub></td></tr><tr><td>6</td><td>282 678 = (64 | 59 | 0)<sub>2,66</sub></td></tr><tr><td>7</td><td>283 336 = (65 | 2 | 64)<sub>2,66</sub></td></tr><tr><td>8</td><td>283 995 = (65 | 12 | 63)<sub>2,66</sub></td></tr><tr><td>9</td><td>284 128 = (65 | 14 | 64)<sub>2,66</sub></td></tr><tr><td>10</td><td>284 590 = (65 | 21 | 64)<sub>2,66</sub></td></tr><tr><td>11</td><td>285 712 = (65 | 38 | 64)<sub>2,66</sub></td></tr><tr><td>12</td><td>285 844 = (65 | 40 | 64)<sub>2,66</sub></td></tr><tr><td>13</td><td>286 372 = (65 | 48 | 64)<sub>2,66</sub></td></tr><tr><td>14</td><td>286 636 = (65 | 52 | 64)<sub>2,66</sub></td></tr><tr><td>15</td><td>286 702 = (65 | 53 | 64)<sub>2,66</sub></td></tr><tr><td>16</td><td>287 230 = (65 | 61 | 64)<sub>2,66</sub></td></tr></tbody></table>

We have the following relations:

$$1, 7 : \gamma_{66}((64 \mid 34 \mid 0)_{2,66}) = \pi_{66}((64 \mid 34 \mid 0)_{2,66}) = (65 \mid 2 \mid 64)_{2,66}$$

$$2, 9 : \gamma_{66}((64 \mid 40 \mid 0)_{2,66}) = \pi_{66}((64 \mid 40 \mid 0)_{2,66}) = (65 \mid 14 \mid 64)_{2,66}$$

$$3, 11 : \gamma_{66}((64 \mid 52 \mid 0)_{2,66}) = \pi_{66}((64 \mid 52 \mid 0)_{2,66}) = (65 \mid 38 \mid 64)_{2,66}$$

$$4, 12 : \gamma_{66}((64 \mid 53 \mid 0)_{2,66}) = \pi_{66}((64 \mid 53 \mid 0)_{2,66}) = (65 \mid 40 \mid 64)_{2,66}$$

$$5, 13 : \gamma_{66}((64 \mid 57 \mid 0)_{2,66}) = \pi_{66}((64 \mid 57 \mid 0)_{2,66}) = (65 \mid 48 \mid 64)_{2,66}$$

$$6, 14 : \gamma_{66}((64 \mid 59 \mid 0)_{2,66}) = \pi_{66}((64 \mid 59 \mid 0)_{2,66}) = (65 \mid 52 \mid 64)_{2,66}$$

$$10, 11 : \gamma_{66}^{27}((64 \mid 21 \mid 65)_{2,66}) = \gamma_{66}^{2}((64 \mid 38 \mid 65)_{2,66}) = (65 \mid 10 \mid 9 \mid 64)_{3,66}$$

We then plot the following nine integers on the same graph:

$7, 8, 9, 11, 12, 13, 14, 15, 16.$

For each of these integers $n$, we examine the curve:

$$k \in \{1, \dots, 10^6\} \mapsto d_{66}(\gamma_{66}^k(n)).$$

We observe that for these 9 numbers, we have:

$$d_{66}(\gamma_{66}^{10^6}(n)) \geq 40 000$$

and that the general trend is increasing as a function of $k$. It seems that these numbers are Quebecois.
<figure><img src="image_21.png" /></figure>
### A.6 Celt and Sicilian Numbers of Degree 1

We have simply shown that every degree 0 number is Norman in base $b$. We wondered if every degree 1 number is Norman in base $b$. The answer is no: there are Celt numbers, though I do not know if there are Quebecois numbers.

* **Celt Numbers.** First, we have some Celt numbers; here are a few examples:

♠ $n := (778 | 739)_{1,779}$. It is Celt in base 779, we have:

$$ \mathrm{Id}_{779}^{\dagger}(n) = (1,8) , \quad \tau_{779}(n) = (740 | 699 | 739)_{2,779}; $$

♠ $n := (1795 | 1750)_{1,1796}$. It is Celt in base 1796, we have:

$$ \mathrm{Id}_{1796}^{\dagger}(n) = (1,8) , \quad \tau_{1796}(n) = (1751 | 1704 | 1750)_{2,1796}; $$

♠ $n := (3590 | 3545)_{1,3591}$. It is Celt in base 3591, we have:

$$ \mathrm{Id}_{3591}^{\dagger}(n) = (1,8) , \quad \tau_{3591}(n) = (3546 | 3499 | 3545)_{2,3591}. $$

* **Sicilian Numbers.** When looking at base $b$ less than 5000, we find that there are also four problematic bases where Sicilian numbers of order at least $2.10^5$ appear: the bases 258, 512, 1024, and 4096. We then examine the four integers:

<table><thead><tr><th>N°</th><th>n</th></tr></thead><tbody><tr><td>1</td><td>66 305 = (257 | 256) <sub>1,258</sub></td></tr><tr><td>2</td><td>261 631 = (511 | 510) <sub>1,512</sub></td></tr><tr><td>3</td><td>261 631 = (1023 | 1022) <sub>1,1024</sub></td></tr><tr><td>4</td><td>261 631 = (4095 | 4094) <sub>1,4096</sub></td></tr></tbody></table>

We then plot the curve for each of these integers $N$:

$$ k \in \{1, \dots, K\} \mapsto d_b(\gamma_b^k(N)) $$

with $K \in [2.10^5, 10^6]$. We observe that for these 4 numbers, we have:

$$ d_b(\gamma_b^k(N)) \geq 100 000 $$

and that the general trend is increasing as a function of $k$. It seems that these numbers are also Quebecois.
<figure><img src="image_22.png" /></figure>
## B Artifaille in Python

We conclude this text with the set of programs presented in this text for those wishing to test them.

```python
import math as ma
from typing import List, Tuple, Union, Dict
```

```python
جلد
# Base
```

```python
Base = int
IntB = Tuple List[int], Base]
```

```python
def int_to_base(n: int, b: Base) -> IntB:
    if n == []:
        return ((), b)
    elif n == 0:
        return ([0], b)
    else:
        B = []
        k = n
        while k > 0:
            B.append(k % b)
            k /= b
        return (B, b)
```

```python
def base_to_int(N: IntB) -> int:
    B, b = N
    if B == []:
        return []
    else:
        s = 0
        p = 1
        for c in B:
            s += c * p
            p *= b
        return s
```

```python
def deg_base(N: IntB) -> int | float:
    B, _ = N
    if B == []:
        return -ma.inf
    elif len(B) == 1:
        return 0
    else:
        d = len(B) - 1
        while B[d] == 0:
            d -= 1
        return d
```

```python
def val_base(N: IntB) -> int | float:
```
```python
B, _ = N
if B == [] or B == [0]:
    return ma.inf
else:
    v = 0
    while B[v] == 0:
        v += 1
    return v

def add_base(N: IntB, M: IntB) -> IntB: # len(N[0]) = len(M[0])
R, s = [], 0
B, C, b = M[0], *N
for i in range(len(B)):
    s = B[i] + C[i] + s
    R = R + [s % b]
    s = s // b
return (R + (s * [1]), b)

def compare_base(N: IntB, M: IntB) -> bool: # N <= M ?
B, C = N[0], M[0]
if len(B) != len(C):
    return len(B) < len(C)
for i in range(len(B) - 1, -1, -1):
    if B[i] > C[i]:
        return False
elif B[i] < C[i]:
    return True
return True

def plus_1(N: IntB) -> IntB:
B, b = N
c = 1
for i in range(len(B)):
    B[i] += c
    if B[i] < b:
        return (B, b)
    B[i] = 0
B.append(1)
return (B, b)

def latex_IntB(N: IntB) -> str:
B, b = N
s = '\\ |\\ '.join([str(B[-i-1]) for i in range(len(B))])
return '\\left(' + s + '\\right)_{'} + str(len(B) - 1) + ', ' + str(b) + '}'

def latex_list_IntB(L: List List[int]], b: Base) -> str:
    return ',\\ '.join([latex_IntB((x, b)) for x in L])
```

##########
# Opérations de base

########################################

def est_red(N: IntB) -> bool:
    B, _ = N
    if B == []:
        return False
    return B[0] == B[-1]

def rg_red(N: IntB) -> int:
    if len(N[0]) <= 2:
        return int est_red(N)
    elif est_red(N):
        return 1 + rg_red((N[0][1: -1], N[1]))
    else:
        return 0

def est_pal(N: IntB) -> bool:
    B, _ = N
    if B == []:
        return False
    return B == B[: : -1]

def rho_fct(N: IntB) -> IntB:
    r = rg_red(N)
    return (N[0][r: len(N[0]) - r], N[1])

def mu_fct(N: IntB) -> IntB:
    return (N[0][ : : -1], N[1])

def pi_fct(N: IntB) -> IntB:
    B, b = N
    R, s = [], 0
    for k in range(len(B)):
        s = B[k] + B[-k - 1] + s
        R.append(s % b)
        s // = b
    if s:
        R.append(1)
    return (R, b)

def gamma_fct(N: IntB) -> IntB:
    if est_red(N):
        return rho_fct((N[0][1: -1], N[1]))
    else:
        return pi_fct(N)

def est_elingard(N: IntB) -> bool:
```python
if est_red(N):
    return False
else:
    B, b = N
    d = len(B)
    B, b = pi_fct((list(B), b))
    return len(B) > d and not est_red((B, b))
```

```python
def elingard_fct(N: IntB) -> IntB:
    if est_red(N):
        return False
    else:
```

```python
d = len(N[0])
while len(N[0]) == d:
    NO = list(N)
    N = pi_fct(N)
```

```python
if est_elingard(NO):
    return NO
else:
    return False
```

```python
def kappa_fct(N: IntB) -> IntB:
    B, b = N
    for k in range(len(B) // 2):
        a = B[k] + B[-k - 1]
        B[k], B[-k - 1] = max(0, a - b + 1), min(a, b - 1)
    return (B, b)
```

```python
def est_duc(N: IntB) -> bool:
    return kappa_fct((list(N[0]), N[1])) == N
```

```python
def kappaDag_fct(N: IntB) -> IntB:
    B, b = N
d = len(B)
while True:
```

```python
    if est_red((B, b)):
        return False
    B0, _ = pi_fct((B, b))
    if len(B0) > d:
        return kappa_fct((B, b))
    B = list(B0)
```

```python
def tin(N: IntB, k:int) -> int:
    B, b = N
d = len(B)
i = 0
while len(B) <= d + k:
    B, _ = pi_fct((B, b))
    i += 1
return i - 1
```

```python
def est_duc_elingard(N: IntB) -> bool:
```
engoille
# LISTES

## LISTES

engoille
# LISTES

def liste_B_db(d: int, b: base) -> List List[int]]:

L = [[i] for i in range(d != 0, b)]

for _ in range(d):

L = [[i] + x for i in range(b) for x in L]

return L

def liste_Ro0(d: int, b: base) -> List List[int]]:

if d == 0:

return []

else:

L = [[i] for i in range(1, b)]

for _ in range(d - 1):

L = [[i] + x for i in range(b) for x in L]

L = [[i] + x for i in range(b) for x in L if i != x[-1]]

return L

def liste_Ro0_bis(d: int, b: base) -> List List[int]]:

return [x for x in liste_B_db(d, b) if not est_red((x, b))]]

def liste_elingard(d: int, b: base) -> List List[int]]:

return [x for x in liste_Ro0(d, b) if est_elingard((list(x), b))]]

def liste_duc(d: int, b: base) -> List List[int]]:

return [x for x in liste_B_db(d, b) if est_duc((list(x), b))]]

def liste_duc_quasi_elingard(d: int, b: base) -> List List[int]]:

if d % 2 == 0:

L = [[j] for j in range(b)]

else:

L = [[]]

if d >= 1:

A = [(max(0, j - b + 1), min(j, b - 1)) for j in range(2 * b - 1)]

for _ in range((d + 1) // 2 - 1):

L = [[a] + x + [b] for x in L for a, b in A]

A = [(max(0, j - b + 1), min(j, b - 1))

for j in range(b - 1, 2 * b - 2) if j - b + 1 != 2]

L = [[a] + x + [b] for x in L for a, b in A]

return L

def liste_duc_elingard_bis(d, b):

return [x for x in liste_Ro0(d, b) if est_duc_elingard((list(x), b))]]

def liste_duc_elingard(d, b):

return [x for x in liste_duc_quasi_elingard(d, b) if

x[0] + x[-1] >= b or est_elingard((list(x), b))]]

def liste_riboutin(d, b, k):
```python
L = dict()
i = 0

for y in liste_quasi_duc_elingard(d, b):
    x = list(y)
    while len(x) <= d + 1 + k:
        B = list(x)
        if est_red((x, b)):
            B = False
            break
        x, _ = pi_fct((x, b))
    if B != False:
        B = tuple(B)
        if B not in L or not compare_base((L[B], b), (B, b)) :
            i += 1
            L[B] = y
return list(L.values())
```
Let us finish this text with a tribute to the Great Corneille<fnref n="22" />:

Cônèl', graund pouêt' fraunçais, d' not' Nourmaundie l' houreu,
J' voudrais, dauns not' prêchi, câosaer eun miot d' ta glouère,
Mais t' as paè bésouan d' cha por ténin dauns l' histouère
Es Lettr's eunn' tout' graund pllèch' ! Tu t' débroûl's byin tout seu !

J' vas tout d' mêm' dyîr' déeus mots ! Oh, no fait ch' qué no pueut !
M'n achocris', pardouné-m' la dounc et quitt' - mei faire !
Jé 'nn' érai paè por loung ! Ch' est certain qu' i n' y a guère,
A dictaer eun sounet, d' risque d' attrapaer seu !

Y en a qui t' fount lé r'proch' d' avaer 'taè trop graundiose,
Dé n' mouortraer qu' des héros, mais, por mei, ch' est la chose
Qué d' vaunt qu' d' y'être écrivain, t' étais d' abord nourmaund !

Les syins qui dis'nt chenna s' sount paè, janmais d' la vie,
— Qu' no pense ch' qué no veut dé men lichouin d' paisaunt —
A visaès qu' tes Romains 'taient naès en Nourmaundie !

A.-J. Desnouettes, Au grand corneille<fnref n="23" />

<footnote n="22">²²Pierre Corneille, also called "the Great Corneille" (1606 - 1684), Norman playwright and poet.</footnote>

<footnote n="23">²³A.-J. Desnouettes, *Sonnets cotinais en parler populaire du pays*, Études Normandes, 101, pp. 173-200, (1958)</footnote>