# PseudoWitnessSet -- the class of all pseudo-witness sets

## Description

This is a type of hash table storing the output of a pseudo-witness set computation using monodromy, with the following keys:

• \bf isCompletePseudoWitnessSet: whether the pseudo-witness set has passed the trace test, according to the trace test threshold
• \bf degree: the number of image points found by monodromy
• \bf map: the map $F$, of which the image is under consideration
• \bf sourceEquations: the defining ideal $I$ of the source variety
• \bf sourceSlice: additional equations to form a zero-dimensional system (only needed if the map is not finite-to-one)
• \bf generalCombinations: additional equations to form a zero-dimensional system (only needed if the source ideal is not a complete intersection)
• \bf imageSlice: the pullback under F of a general complementary-dimensional linear space to $F(V(I))$
• \bf witnessPointPairs: a vertical list of 2-point sequences $(p, F(p))$, where $p$ lies on the source $V(I)$ and $F(p)$ lies on imageSlice
• \bf trace: the result of the trace test applied to witnessPointPairs

For a discussion of pseudo-witness sets, see J.D. Hauenstein and A.J. Sommese, $Witness sets of projections$, Appl. Math. Comput. 217(7) (2010), 3349-3354.

The following example demonstrates the output for the degree $3$ embedding of $P^1$ into $P^3$, whose image is the twisted cubic.

 i1 : R = CC[s,t]; i2 : W = pseudoWitnessSet(basis(3,R), ideal 0_R, Verbose => false); -- warning: experimental computation over inexact field begun -- results not reliable (one warning given per session) i3 : peek W o3 = PseudoWitnessSet{degree => 3 } generalCombinations => 0 imageSlice => | (.0258884+.714827ii)s3+(.89189+.231053ii)s2t+(.461944+.775187ii)st2+(.909047+.314897ii)t3+2.27491+.509688ii (.0741835+.808694ii)s3+(.362835+.706096ii)s2t+(.127435+.254482ii)st2+(.741046+.108386ii)t3+2.06657+.790512ii | isCompletePseudoWitnessSet => true map => | s3 s2t st2 t3 | sourceEquations => ideal 0 sourceSlice => 0 trace => 8.09873e-12 witnessPointPairs => {({-.378607-.511124*ii, .596166+1.31216*ii}, {.24246-.0862685*ii, -.578137+.076024*ii, 1.31698+.106034*ii, -2.86749-.860156*ii})} {({1.18221+.736333*ii, -.445585+.423262*ii}, {-.270643+2.68814*ii, -1.11808-.413689*ii, .300672-.431649*ii, .151012+.176283*ii})} {({.892712+.673395*ii, .29398+.632944*ii}, {-.502996+1.3046*ii, -.660011+.57085*ii, -.531085+.120643*ii, -.327914-.0894633*ii}) }

## Functions and methods returning a pseudo-witness set :

• "pseudoWitnessSet(List,Ideal)" -- see pseudoWitnessSet -- computes a pseudo-witness set for the image of a variety
• "pseudoWitnessSet(List,Ideal,List,Thing)" -- see pseudoWitnessSet -- computes a pseudo-witness set for the image of a variety
• "pseudoWitnessSet(List,Ideal,Point)" -- see pseudoWitnessSet -- computes a pseudo-witness set for the image of a variety
• "pseudoWitnessSet(Matrix,Ideal)" -- see pseudoWitnessSet -- computes a pseudo-witness set for the image of a variety
• "pseudoWitnessSet(Matrix,Ideal,List,Thing)" -- see pseudoWitnessSet -- computes a pseudo-witness set for the image of a variety
• "pseudoWitnessSet(Matrix,Ideal,Point)" -- see pseudoWitnessSet -- computes a pseudo-witness set for the image of a variety
• "pseudoWitnessSet(RingMap,Ideal)" -- see pseudoWitnessSet -- computes a pseudo-witness set for the image of a variety
• "pseudoWitnessSet(RingMap,Ideal,List,Thing)" -- see pseudoWitnessSet -- computes a pseudo-witness set for the image of a variety
• "pseudoWitnessSet(RingMap,Ideal,Point)" -- see pseudoWitnessSet -- computes a pseudo-witness set for the image of a variety

## Methods that use a pseudo-witness set :

• "isOnImage(PseudoWitnessSet,Point)" -- see isOnImage -- tests whether a point lies on the image of a variety
• "numericalImageDegree(PseudoWitnessSet)" -- see numericalImageDegree -- computes the degree of the image of a variety
• "net(PseudoWitnessSet)"

## For the programmer

The object PseudoWitnessSet is a type, with ancestor classes HashTable < Thing.