|
|
(2 intermediate revisions by 2 users not shown) |
Line 5: |
Line 5: |
|
|
|
|
|
===Braids=== |
|
===Braids=== |
|
{|align=center cellpadding="5" |
|
{|align=center |
|
|- |
|
|- |
|
|<pre> |
|
|<pre> |
Line 19: |
Line 19: |
|
b.draw(); // Draw the resulting braid. |
|
b.draw(); // Draw the resulting braid. |
|
</pre> |
|
</pre> |
|
|
|width="40pt"| |
|
|[[Image:06-1350-mybraid.png]] |
|
|[[Image:06-1350-mybraid.png]] |
|
|} |
|
|} |
|
|
|
|
|
===Relations=== |
|
===Relations=== |
|
{|align=center cellpadding="5" |
|
{|align=center |
|
|- |
|
|- |
|
|<pre> |
|
|<pre> |
Line 38: |
Line 39: |
|
r3.draw(); |
|
r3.draw(); |
|
</pre> |
|
</pre> |
|
|
|width="40pt"| |
|
|[[Image:06-1350-R3-asy.png]] |
|
|[[Image:06-1350-R3-asy.png]] |
|
|} |
|
|} |
Line 67: |
Line 69: |
|
===Syzygies=== |
|
===Syzygies=== |
|
|
|
|
|
{|align=center cellpadding="5" |
|
{|align=center |
|
|- |
|
|- |
|
|<pre> |
|
|<pre> |
Line 98: |
Line 100: |
|
pb.draw(); |
|
pb.draw(); |
|
</pre> |
|
</pre> |
|
|
|width="60pt"| |
|
|[[Image:06-1350-bpsmall.png]] |
|
|[[Image:06-1350-bpsmall.png]] |
|
|} |
|
|} |
Latest revision as of 20:54, 4 December 2006
Installation
See 06-1350/Syzygies in Asymptote for more detailed information.
First install Asymptote. Once installed, download syzygy.asy.
Braids
import syzygy; // Accesses the syzygy module.
Braid b; // Start a new braid.
b.n=3; // The braid has three strands.
// The strands are numbered left to right starting at 0.
b.add(bp,0); // Add a overcrossing component starting at strand 0,
// the leftmost strand.
b.add(bm,1); // Add an undercrossing starting at strand 1.
b.add(phi,0); // Add a trivalent vertex that merges strands 0 and 1.
// Strand 2 is now renumbered as strand 1.
b.draw(); // Draw the resulting braid.
|
|
|
Relations
import syzygy; // Access the syzygy module.
Braid l; // Define the left hand side of the relation.
l.n=3; l.add(bp,0); l.add(bp,1); l.add(bp,0);
Braid r; // Define the right hand side of the relation.
r.n=3; r.add(bp,1); r.add(bp,0); r.add(bp,1);
Relation r3; // Define a relation.
r3.lsym="\rho_3"; // Give the relation a formula name.
r3.codename="rho3"; // Give the relation a name to be used by Mathematica.
r3.lhs=l; r3.rhs=r;
r3.draw();
|
|
|
r3.toFormula()
produces the formula:
r3.toLinear()
produces the formula in linear form:
|
|
|
|
and r3.toCode()
produces a version usable in Mathematica:
rho3[x1_, x2_, x3_, x4_] :> bp[x1, x2, x3] + bp[x1 + x3, x2, x4] + bp[x1, x3, x4]
- bp[x1 + x2, x3, x4] - bp[x1, x2, x4] - bp[x1 + x4, x2, x3]
Syzygies
import syzygy;
// Phi around B
Braid initial;
initial.n=4;
initial.add(bp,2);
initial.add(bp,0);
initial.add(bp,1);
initial.add(bp,0);
initial.add(bp,2);
initial.add(phi,1);
Syzygy pb;
pb.lsym="\Phi B";
pb.codename="PhiAroundB";
pb.initial=initial;
pb.apply(r3,1,0);
pb.apply(r4a,3,1);
pb.swap(2,3);
pb.apply(r4b,0,1);
pb.apply(-r3,1,0);
pb.apply(-r4a,0,0);
pb.swap(2,3);
pb.apply(-r4b,3,0);
pb.apply(r3,1,1);
pb.draw();
|
|
|
Again, like relations, we can use pb.toLinear()
|
|
|
|
|
|
and pb.toCode()
PhiAroundB[x1_, x2_, x3_, x4_, x5_] :> rho3[x1, x2, x3, x5] + rho4a[x1 + x5, x2, x3, x4]
+ rho4b[x1 + x2, x3, x4, x5] - rho3[x1, x2, x3 + x4, x5] - rho4a[x1, x2, x3, x4]
- rho4b[x1, x3, x4, x5] + rho3[x1 + x3, x2, x4, x5]
to produce formulas.