In [17]:
# starts by taking the usual Tribonnacci Rauzy fractal
from badic import *
m0 = DumontThomas(WordMorphism('a->ab,b->ac,c->a')).mirror()
m0
Out[17]:
b-adic set with b root of x^3 - x^2 - x - 1, and an automaton of 3 states and 2 letters
In [15]:
# define a subset of the beta-adic set of the previous Rauzy fractal, where we take half of the points
m = BetaAdicSet(x^3-x^2-x-1, DetAutomaton([(0,0,0),(0,1,1),(1,1,0),(1,2,1),(2,2,0),(2,1,1)], i=0, final_states=[0,1]))
m.plot()
Out[15]:
In [16]:
# the automaton of this beta-adic set
m.a.plot()
Out[16]:
In [19]:
# if we plot the beta-adic set m on the beta-adic set m0,
# we see that not all points are in m (the red is a little bit gray)
m0.plot_list([m])
Out[19]:
In [20]:
# we can compute a substitution describing the beta-adic set m
d, la = m.substitution(get_aut=True)
d
Out[20]:
{1: [6], 2: [2, 1], 3: [4, 1], 4: [4, 5, 1], 5: [3, 1], 6: [4]}
In [26]:
# list of automata describing the pieces of the Rauzy fractal
la
Out[26]:
[(DetAutomaton with 8 states and an alphabet of 2 letters, b - 1),
 (DetAutomaton with 1 state and an alphabet of 2 letters, 1),
 (DetAutomaton with 9 states and an alphabet of 2 letters, 2),
 (DetAutomaton with 9 states and an alphabet of 2 letters, b + 1),
 (DetAutomaton with 8 states and an alphabet of 2 letters, b^2 - b),
 (DetAutomaton with 9 states and an alphabet of 2 letters, b^2 - b)]
In [24]:
m0.plot_list([a for a,t in la])
Out[24]:
In [13]:
# plot the Rauzy fractal
s = WordMorphism(d)
print(s)
s.rauzy_fractal_plot()
1->6, 2->21, 3->41, 4->451, 5->31, 6->4
Out[13]:
In [29]:
# We can see that translated copies of the Rauzy fractal that naturally
# tiles the plane have a non-trivial intersection.
# Hence, this substitution does not satisfy the Pisot conjecture (but is not irreducible)
s.rauzy_fractal_plot(translate=[(0,0,0),(1,0,0)])
Out[29]:
In [30]:
s.is_primitive()
Out[30]:
False
In [31]:
# we can remove the unusefull letter 2, but it will not change a lot of thing
# (it removes only one point from the beta-adic set)
s = WordMorphism('a->e,b->ca,c->cda,d->ba,e->c')
s
Out[31]:
WordMorphism: a->e, b->ca, c->cda, d->ba, e->c
In [32]:
s.rauzy_fractal_plot()
Out[32]:
In [33]:
s.is_primitive()
Out[33]:
True
In [34]:
s.rauzy_fractal_plot(translate=[(0,0,0),(1,0,0)])
Out[34]:
In [ ]: