Pensieve header:  The linear algebra preliminaries for the partial quadratic signature formalism for tangles; with Jessica Liu.

RowRed[Subspace[vs_,gens_]]:=RowReduce[Join[Table[Coefficient[g,v],{g,gens},{v,Sort[vs]}], IdentityMatrix[Length@gens], 2]];

RowRed[Subspace[{y,z,x,w},{x+y,x-y+z,x+2y+w}]]//MatrixForm

CF[Subspace[{},{0...}]]:=Subspace[{},{}];
CF[Subspace[vs_,{}]]:=Subspace[Sort[vs],{}];
CF[Subspace[vs_,gens_]]:=Module[{cvs=Sort[vs]},
Subspace[cvs,
DeleteCases[(RowRed[Subspace[vs, gens]][[All,;;Length@vs]]).cvs,0]
]];
CF[lt_LT]:=Sort/@lt
CFSteps[Subspace[{},{0...}]]:={};
CFSteps[Subspace[vs_,{}]]:={};
CFSteps[sub_]:=RowRed[sub][[All,-Length@RowRed[sub];;]];

CF[Subspace[{y,z,x,w},{x+y,x-y+z,x+2y+w}]]

CFSteps[Subspace[{y,z,x,w},{x+y,x-y+z,x+2y+w}]]//MatrixForm

Eval[Q_,v_,w_]:=Expand[Q v w]//. {(Subscript[η, i__])(Subscript[y, i__]):>1,(Subscript[η, i__]^2)(Subscript[y, i__]^2):>2}/.(Subscript[(η|y), __])->0;
Eval[ϕ_,v_]:=Expand[ϕ v]/.{(Subscript[η, i__])(Subscript[y, i__]):>1, (Subscript[η, i__]^2)(Subscript[y, i__]):>2(Subscript[η, i])}/.(Subscript[y, __])->0;

Eval[u (Subscript[η, 1]^2)+v (Subscript[η, 1])(Subscript[η, 2]), (Subscript[y, 1])+(Subscript[y, 2])]

Eval[Eval[u (Subscript[η, 1]^2)+v (Subscript[η, 1])(Subscript[η, 2]),(Subscript[y, 1]) ],(Subscript[y, 1])+(Subscript[y, 2])]

Eval[u (Subscript[η, 1]^2)+v (Subscript[η, 1])(Subscript[η, 2]),(Subscript[y, 1])+(Subscript[y, 2]),(Subscript[y, 1])]

Pivot[v_Plus]:=v[[1]]; Pivot[v_]:=v;
(Subscript[y, i__]^( * )):=(Subscript[η, i]); (Subscript[η, i__]^( * )):=(Subscript[y, i]); (SuperStar[(vs_List)]):=Table[(SuperStar[v]),{v,vs}];

CF[PQ[sub_Subspace,Q_]]:=Module[{csub,cvs,cgens},
{cvs,cgens}=List@@(csub=CF[sub]);
PQ[csub,Sum[Eval[Q,v,w](SuperStar[Pivot[v]])(SuperStar[Pivot[w]])/2,{v,cgens},{w,cgens}]]
]

CF[PQ[Subspace[{(Subscript[y, 1]),(Subscript[y, 2]),(Subscript[y, 3])},{(Subscript[y, 1])+2(Subscript[y, 3]),(Subscript[y, 2])+3(Subscript[y, 3])}],(Subscript[η, 3]^2)]]

Eval[(Subscript[η, 3]^2), (Subscript[y, 1])+2(Subscript[y, 3]),(Subscript[y, 2])+3(Subscript[y, 3])]

Eval[4 (Subscript[η, 1]^2)+12 (Subscript[η, 1]) (Subscript[η, 2])+9 (Subscript[η, 2]^2), (Subscript[y, 1])+2(Subscript[y, 3]),(Subscript[y, 2])+3(Subscript[y, 3])]

Eval[4 (Subscript[η, 1]^2)+12 (Subscript[η, 1]) (Subscript[η, 2])+9 (Subscript[η, 2]^2), (Subscript[y, 1]),(Subscript[y, 2])]

Eval[12 (Subscript[η, 1]) (Subscript[η, 2]), (Subscript[y, 1]),(Subscript[y, 2])]

Perp[Subsp_]:=Module[{pp, cvs, cgens},
{cvs, cgens}=List@@CF@Subsp;
pp=(SuperStar[Complement[cvs,Pivot/@cgens]]);
CF@Subspace[(SuperStar[cvs]),
Table[p-Sum[Coefficient[g,(SuperStar[p])](SuperStar[Pivot[g]]),{g,cgens}],{p,pp}]
]
]

Perp@Subspace[{(Subscript[y, 1]),(Subscript[y, 2]),(Subscript[y, 3])},{(Subscript[y, 1])-(Subscript[y, 2])}]

Perp@Perp@Subspace[{(Subscript[y, 1]),(Subscript[y, 2]),(Subscript[y, 3])},{(Subscript[y, 1])-(Subscript[y, 2])}]

Id[vs_]:=LT[vs,vs,Table[v->v,{v,vs}]]

Id[{(Subscript[y, 1]),(Subscript[y, 2])}]

(SuperStar[LT[dom_,ran_,rs_]])[Subspace[ran_,gens_]]:= Perp@CF@Subspace[(SuperStar[dom]),Table[
Sum[Eval[p,v/.rs](SuperStar[v]),{v,dom}],
{p,Perp[Subspace[ran,gens]][[2]]}
]]

(SuperStar[LT[{(Subscript[y, -1]),(Subscript[y, -2]),(Subscript[y, -3])},{(Subscript[y, 1]),(Subscript[y, 2]),(Subscript[y, 3])},{(Subscript[y, -1])->(Subscript[y, 1])+2(Subscript[y, 3]),(Subscript[y, -2])->2(Subscript[y, 2])-(Subscript[y, 3]),(Subscript[y, -3])->(Subscript[y, 3])}]])[Subspace[{(Subscript[y, 1]),(Subscript[y, 2]),(Subscript[y, 3])},{(Subscript[y, 1])-(Subscript[y, 2])} ]]

(SuperStar[LT[dom_,ran_,rs_]])[PQ[sub_,Q_]]:= CF@PQ[
(SuperStar[LT[dom,ran,rs]])[sub],
Sum[Eval[Q,v1/.rs,v2/.rs](SuperStar[v1])(SuperStar[v2])/2,{v1,dom},{v2,dom}]
]

(SuperStar[Id[{(Subscript[y, 1]),(Subscript[y, 2]),(Subscript[y, 3])}]])[PQ[Subspace[{(Subscript[y, 1]),(Subscript[y, 2]),(Subscript[y, 3])},{(Subscript[y, 1])+2 (Subscript[y, 3]),(Subscript[y, 2])+3 (Subscript[y, 3])}],4 (Subscript[η, 1]^2)+12 (Subscript[η, 1]) (Subscript[η, 2])+9 (Subscript[η, 2]^2)]]

(SuperStar[LT[{(Subscript[y, -1]),(Subscript[y, -2]),(Subscript[y, -3])},{(Subscript[y, 1]),(Subscript[y, 2]),(Subscript[y, 3])},{(Subscript[y, -1])->(Subscript[y, 1])+2(Subscript[y, 3]),(Subscript[y, -2])->2(Subscript[y, 2])-(Subscript[y, 3]),(Subscript[y, -3])->(Subscript[y, 3])}]])[PQ[Subspace[{(Subscript[y, 1]),(Subscript[y, 2]),(Subscript[y, 3])},{(Subscript[y, 1])+2 (Subscript[y, 3]),(Subscript[y, 2])+3 (Subscript[y, 3])}],4 (Subscript[η, 1]^2)+12 (Subscript[η, 1]) (Subscript[η, 2])+9 (Subscript[η, 2]^2)]]

Eval[((36 (Subscript[η, -3]^2))/49)+(24/7) (Subscript[η, -3]) (Subscript[η, -1])+4 (Subscript[η, -1]^2),(Subscript[y, -3])+((Subscript[y, -2])/7),(Subscript[y, -3])+((Subscript[y, -2])/7) ]

Eval[4 (Subscript[η, 1]^2)+12 (Subscript[η, 1]) (Subscript[η, 2])+9 (Subscript[η, 2]^2),
(Subscript[y, -3])+((Subscript[y, -2])/7)/.{(Subscript[y, -1])->(Subscript[y, 1])+2(Subscript[y, 3]),(Subscript[y, -2])->2(Subscript[y, 2])-(Subscript[y, 3]),(Subscript[y, -3])->(Subscript[y, 3])},
(Subscript[y, -3])+((Subscript[y, -2])/7)/.{(Subscript[y, -1])->(Subscript[y, 1])+2(Subscript[y, 3]),(Subscript[y, -2])->2(Subscript[y, 2])-(Subscript[y, 3]),(Subscript[y, -3])->(Subscript[y, 3])}]

Subspace/:Subspace[v1s_, gen1s_]⊕Subspace[v2s_, gen2s_]:=CF@Subspace[v1s ⋃v2s,gen1s ⋃gen2s];
Subspace/:Subspace[vs_,gen1s_]+Subspace[vs_,gen2s_]:=CF@Subspace[vs,gen1s ⋃gen2s];
Subspace/:sub1_Subspace⋂sub2_Subspace:=Perp[Perp[sub1]+Perp[sub2]];
Subspace/:v_∈Subspace[vs_, gens_]:=(Subspace[vs, gens]⋂Subspace[vs, {v}])[[2]]=!={};

Subspace[{(Subscript[y, 1]),(Subscript[y, 2])},{(Subscript[y, 1])-3(Subscript[y, 2])}]⊕Subspace[{(Subscript[y, -1]),(Subscript[y, -2]),(Subscript[y, -3])},{(Subscript[y, -3]),(Subscript[y, -1])+(Subscript[y, -2])}]

Subspace[{(Subscript[y, 1]),(Subscript[y, 2]),(Subscript[y, 3])},{(Subscript[y, 1])+2 (Subscript[y, 3])}]+Subspace[{(Subscript[y, 1]),(Subscript[y, 2]),(Subscript[y, 3])},{3 (Subscript[y, 3])}]

Subspace[{(Subscript[y, 1]),(Subscript[y, 2]),(Subscript[y, 3])},{(Subscript[y, 1])+2 (Subscript[y, 3])}]⋂Subspace[{(Subscript[y, 1]),(Subscript[y, 2]),(Subscript[y, 3])},{2(Subscript[y, 3]),(Subscript[y, 1])}]

(Subscript[y, 3])∈Subspace[{(Subscript[y, 1]),(Subscript[y, 2]),(Subscript[y, 3])},{(Subscript[y, 1])+2 (Subscript[y, 3])}]

(Subscript[y, 3])∈Subspace[{(Subscript[y, 1]),(Subscript[y, 2]),(Subscript[y, 3])},{(Subscript[y, 1])+2 (Subscript[y, 3]), (Subscript[y, 1])+(Subscript[y, 3])}]

PQ/:PQ[sub1_, Q1_]⊕PQ[sub2_, Q2_]:=CF@PQ[sub1⊕sub2, Q1+Q2];
PQ/:CirclePlus[PQ1_PQ, PQs__PQ]:=CirclePlus@@Join[{PQ1⊕First[{PQs}]}, {PQs}[[2;;]]];

PQ1=PQ[Subspace[{(Subscript[y, 1]),(Subscript[y, 2])},{(Subscript[y, 2])+2 (Subscript[y, 1])}],4 (Subscript[η, 1]^2)+12 (Subscript[η, 1]) (Subscript[η, 2])+9 (Subscript[η, 2]^2)];
PQ2=PQ[Subspace[{(Subscript[y, -3]),(Subscript[y, -2]),(Subscript[y, -1])},{(Subscript[y, -3])+((Subscript[y, -2])/7),(Subscript[y, -1])}],((36 (Subscript[η, -3]^2))/49)+(24/7) (Subscript[η, -3]) (Subscript[η, -1])+4 (Subscript[η, -1]^2)];
PQ3=PQ[Subspace[{(Subscript[y, 3])},{(Subscript[y, 3])}],(Subscript[η, 3]^2)];

CirclePlus[PQ1,PQ2,PQ3]

(Subscript[Ann, PQ[𝒟_Subspace,Q_]])[Subspace[vs_,gens_]]:=𝒟⋂Perp@Subspace[(SuperStar[vs]),Table[Eval[Q,g],{g,gens}]]

(Subscript[Ann, PQ[Subspace[{(Subscript[y, 1]),(Subscript[y, 2]),(Subscript[y, 3])},{(Subscript[y, 1])+2 (Subscript[y, 3]),(Subscript[y, 2])+3 (Subscript[y, 3])}],4 (Subscript[η, 1]^2)+12 (Subscript[η, 1]) (Subscript[η, 2])+9 (Subscript[η, 2]^2)]])[Subspace[{(Subscript[y, 1]),(Subscript[y, 2]),(Subscript[y, 3])},{(Subscript[y, 1])+2 (Subscript[y, 3])}]]

(Subscript[y, 1])-((2 (Subscript[y, 2]))/3)∈Subspace[{(Subscript[y, 1]),(Subscript[y, 2]),(Subscript[y, 3])},{(Subscript[y, 1])+2 (Subscript[y, 3]),(Subscript[y, 2])+3 (Subscript[y, 3])}]

Eval[4 (Subscript[η, 1]^2)+12 (Subscript[η, 1]) (Subscript[η, 2])+9 (Subscript[η, 2]^2), (Subscript[y, 1])-((2 (Subscript[y, 2]))/3), (Subscript[y, 1])+2 (Subscript[y, 3])]

Ker[LT[{},_,_]]:=Subspace[{},{}];
Ker[LT[dom_,{},_]]:=Subspace[dom,dom];
Ker[LT[dom_,ran_,rs_]]:=Module[{ns},
ns=NullSpace[Table[Coefficient[d/.rs,r],{r,ran},{d,dom}]];
If[Length@ns>0,CF@Subspace[dom,ns.dom],Subspace[dom,{}]]
]

Ker[LT[{(Subscript[y, -1]),(Subscript[y, -2]),(Subscript[y, -3])},{(Subscript[y, 1]),(Subscript[y, 2]),(Subscript[y, 3])},{(Subscript[y, -1])->(Subscript[y, 1])+2(Subscript[y, 3]),(Subscript[y, -2])->2(Subscript[y, 2])-(Subscript[y, 3]),(Subscript[y, -3])->(Subscript[y, 3])}]]

Ker[LT[{(Subscript[y, -1]),(Subscript[y, -2]),(Subscript[y, -3])},{(Subscript[y, 1]),(Subscript[y, 2]),(Subscript[y, 3])},{(Subscript[y, -1])->(Subscript[y, 1])+2(Subscript[y, 3]),(Subscript[y, -2])->-(Subscript[y, 3]),(Subscript[y, -3])->(Subscript[y, 3])}]]

(*will return a LT that is a section on the image*)
Section[LT[dom_,ran_,rs_]]:=Module[{im=Subspace[ran,dom/.rs],newrs={}},
newrs=Thread[Pivot/@(CF[im][[2]])->(CFSteps[im].dom)[[;;Length@CF[im][[2]]]]];
LT[ran, dom, Join[newrs, Thread[Complement[ran,Pivot/@(CF[im][[2]])]->0]]]
]

Section[LT[{(Subscript[y, -1]),(Subscript[y, -2]),(Subscript[y, -3])},{(Subscript[y, 1]),(Subscript[y, 2]),(Subscript[y, 3])},{(Subscript[y, -1])->(Subscript[y, 1])+2(Subscript[y, 3]),(Subscript[y, -2])->2(Subscript[y, 2])-(Subscript[y, 3]),(Subscript[y, -3])->(Subscript[y, 3])}]]

Section[LT[{(Subscript[y, -1]),(Subscript[y, -2]),(Subscript[y, -3])},{(Subscript[y, 1]),(Subscript[y, 2]),(Subscript[y, 3])},{(Subscript[y, -1])->0,(Subscript[y, -2])->2(Subscript[y, 2])-(Subscript[y, 3]),(Subscript[y, -3])->(Subscript[y, 3])}]]

Section[LT[Subspace[vs_, gens_],ran_,rs_]]:= Section[LT[gens, ran, rs]];

(SubStar[(LT[dom_,ran_,rs_])])[Subspace[dom_,gens_]]:= CF@Subspace[ran,gens/.rs]

(SubStar[LT[{(Subscript[y, 1]),(Subscript[y, 2]),(Subscript[y, 3])},{(Subscript[y, 1]),(Subscript[y, 2])},{(Subscript[y, 1])->0,(Subscript[y, 2])->(Subscript[y, 1]),(Subscript[y, 3])->(Subscript[y, 2])}]])[Subspace[{(Subscript[y, 1]),(Subscript[y, 2]),(Subscript[y, 3])},{(Subscript[y, 1]),(Subscript[y, 3])}]]

(SubStar[lt_LT])[PQ[sub_,Q_]]:=CF@(SuperStar[Section[CF[lt]]])[CF@PQ[(Subscript[Ann, PQ[sub,Q]])[Ker[CF[lt]]],Q]];

(SubStar[LT[{(Subscript[y, -1]),(Subscript[y, -2]),(Subscript[y, -3])},{(Subscript[y, 1]),(Subscript[y, 2]),(Subscript[y, 3])},{(Subscript[y, -1])->(Subscript[y, 1])+2(Subscript[y, 3]),(Subscript[y, -2])->2(Subscript[y, 2])-(Subscript[y, 3]),(Subscript[y, -3])->(Subscript[y, 3])}]])[PQ[Subspace[{(Subscript[y, -1]),(Subscript[y, -2]),(Subscript[y, -3])},{(Subscript[y, -1])+2(Subscript[y, -3]),(Subscript[y, -2])+3(Subscript[y, -3])}],(Subscript[η, -3]^2)]]

Sig[PQ[Subspace[vs_, gens_], Q_]]:=Plus@@Sign@Eigenvalues[Table[Eval[Q, v, w], {v, gens}, {w, gens}]];

Sig[PQ[Subspace[{(Subscript[y, 1]),(Subscript[y, 2]),(Subscript[y, 3])},{(Subscript[y, 1])+4 (Subscript[y, 3]),(Subscript[y, 2])+(Subscript[y, 3])}],4 (Subscript[η, 1]^2)+6 (Subscript[η, 1]) (Subscript[η, 2])+((9 (Subscript[η, 2]^2))/4)]]