Let Subscript[v, 1][u], Subscript[v, 2][u], Subscript[v, 3][u]
be the moving frame along the curve .
Define the dot product, cross product relations between the triad \
vectors
Clear[sc];
Clear[sd];
r1 = ((a_ Subscript[v, s_][u])\[Cross](b_ Subscript[v, t_][u]) :>
a b Subscript[v, s][u]\[Cross]Subscript[v, t][u]);
r2 = ((a_ Subscript[v, s_][u])\[Cross]( Subscript[v, t_][u]) :>
a Subscript[v, s][u]\[Cross] Subscript[v, t][u]);
r3 = (( Subscript[v, s_][u])\[Cross](b_ Subscript[v, t_][u]) :>
b Subscript[v, s][u]\[Cross]Subscript[v, t][u]);
r4 = ((a_ Subscript[v, s_][u])\[Cross](b_ Subscript[v, s_][u]) :> 0);
r5 = ((a_ Subscript[v, s_][u])\[Cross]( Subscript[v, s_][u]) :> 0);
r6 = (( Subscript[v, s_][u])\[Cross](b_ Subscript[v, s_][u]) :> 0);
r13 = ((a_[u] Subscript[v, s_][u])\[Cross](b_[u] Subscript[v, t_][
u]) :> a[u] b[u] Subscript[v, s][u]\[Cross]Subscript[v, t][u]);
r14 = ((a_ [u] Subscript[v, s_][u])\[Cross]( Subscript[v, t_][u]) :>
a[u] Subscript[v, s][u]\[Cross] Subscript[v, t][u]);
r15 = (( Subscript[v, s_][u])\[Cross](b_ [u] Subscript[v, t_][u]) :>
b[u] Subscript[v, s][u]\[Cross]Subscript[v, t][u]);
r16 = ((a_[u] Subscript[v, s_][u])\[Cross](b_[u] Subscript[v, s_][
u]) :> 0);
r17 = ((a_ [u] Subscript[v, s_][u])\[Cross]( Subscript[v, s_][u]) :>
0);
r18 = (( Subscript[v, s_][u])\[Cross](b_ [u] Subscript[v, s_][u]) :>
0);
r19 = (Subscript[v, 1][u]\[Cross]Subscript[v, 2][u] :>
Subscript[v, 3][u]);
r20 = (Subscript[v, 2][u]\[Cross]Subscript[v, 1][u] :> -Subscript[v,
3][u]);
r21 = (Subscript[v, 2][u]\[Cross]Subscript[v, 3][u] :>
Subscript[v, 1][u]);
r22 = (Subscript[v, 3][u]\[Cross]Subscript[v, 2][u] :> -Subscript[v,
1][u]);
r23 = (Subscript[v, 3][u]\[Cross]Subscript[v, 1][u] :>
Subscript[v, 2][u]);
r24 = (Subscript[v, 1][u]\[Cross]Subscript[v, 3][u] :> -Subscript[v,
2][u]);
r25 = (Subscript[v, 1][u]\[Cross]Subscript[v, 1][u] :> 0);
r26 = (Subscript[v, 2][u]\[Cross]Subscript[v, 2][u] :> 0);
r27 = (Subscript[v, 3][u]\[Cross]Subscript[v, 3][u] :> 0);
f1 = ((a_ Subscript[v, s_][u]).(b_ Subscript[v, t_][u]) :>
a b Subscript[v, s][u].Subscript[v, t][u]);
f2 = ((a_ Subscript[v, s_][u]).( Subscript[v, t_][u]) :>
a Subscript[v, s][u]. Subscript[v, t][u]);
f3 = (( Subscript[v, s_][u]).(b_ Subscript[v, t_][u]) :>
b Subscript[v, s][u].Subscript[v, t][u]);
f4 = ((a_ Subscript[v, s_][u]).(b_ Subscript[v, s_][u]) :> a b);
f5 = ((a_ Subscript[v, s_][u]).( Subscript[v, s_][u]) :> a);
f6 = (( Subscript[v, s_][u]).(b_ Subscript[v, s_][u]) :> 0);
f13 = ((a_[u] Subscript[v, s_][u]).(b_[u] Subscript[v, t_][u]) :>
a[u] b[u] Subscript[v, s][u].Subscript[v, t][u]);
f14 = ((a_ [u] Subscript[v, s_][u]).( Subscript[v, t_][u]) :>
a[u] Subscript[v, s][u]. Subscript[v, t][u]);
f15 = (( Subscript[v, s_][u]).(b_ [u] Subscript[v, t_][u]) :>
b[u] Subscript[v, s][u].Subscript[v, t][u]);
f16 = ((a_[u] Subscript[v, s_][u]).(b_[u] Subscript[v, s_][u]) :>
a b);
f17 = ((a_ [u] Subscript[v, s_][u]).( Subscript[v, s_][u]) :> a);
f18 = (( Subscript[v, s_][u]).(b_ [u] Subscript[v, s_][u]) :> b);
f19 = (Subscript[v, 1][u].Subscript[v, 2][u] :> 0);
f20 = (Subscript[v, 2][u].Subscript[v, 1][u] :> 0);
f21 = (Subscript[v, 2][u].Subscript[v, 3][u] :> 0);
f22 = (Subscript[v, 3][u].Subscript[v, 2][u] :> 0);
f23 = (Subscript[v, 3][u].Subscript[v, 1][u] :> 0);
f24 = (Subscript[v, 1][u].Subscript[v, 3][u] :> 0);
f25 = (Subscript[v, 1][u].Subscript[v, 1][u] :> 1);
f26 = (Subscript[v, 2][u].Subscript[v, 2][u] :> 1);
f27 = (Subscript[v, 3][u].Subscript[v, 3][u] :> 1);
sc[expr_] := {Distribute[expr] /. {r1, r2, r3, r4, r5, r6, r13, r14,
r15, r16, r17, r18}} /. {r19, r20, r21, r22, r23, r24, r25, r26,
r27}
sd[expr_] := {Distribute[expr] /. {f1, f2, f3, f4, f5, f6, f13, f14,
f15, f16, f17, f18}} /. {f19, f20, f21, f22, f23, f24, f25, f26,
f27}
{Derivative[1][Subscript[v, 1]][u_] := κ[u] Subscript[v, 2][u],
Derivative[1][Subscript[v, 2]][
u_] := τ[u] Subscript[v, 3][u] - κ[u] Subscript[v, 1][
u],
Derivative[1][Subscript[v, 3]][u_] := -τ[u] Subscript[v, 2][u]};
expr = (κ[u] τ[u] Subscript[v, 3][u] + κ[u] τ[
u] Subscript[v, 2][u] + κ[u] τ[u] Subscript[v, 1][
u])\[Cross](g[u] Subscript[v, 1][u] + y[u] Subscript[v, 2][u]);
expr1 = (κ[u] τ[u] Subscript[v, 3][u] + κ[
u] τ[u] Subscript[v, 2][u] + κ[u] τ[
u] Subscript[v, 1][u]).(g[u] Subscript[v, 1][u] +
y[u] Subscript[v, 2][u]);
sc[expr]
sd[expr1]
{-y[u] κ[u] τ[u] Subscript[v, 1][u] +
g[u] κ[u] τ[u] Subscript[v, 2][u] -
g[u] κ[u] τ[u] Subscript[v, 3][u] +
y[u] κ[u] τ[u] Subscript[v, 3][u]}
{g[u] κ[u] τ[u] + y[u] κ[u] τ[u]}
Distribute
do what you want? $\endgroup$Distribute[(c1 v1) . (c2 v2 + c3 v3)]
will give(c1 v1).(c2 v2) + (c1 v1).(c3 v3)
, i.e. not quite there yet. Or where you suggesting something more? $\endgroup$