Attaching Valiant's gadget at every site of a list #
A site is a pair of edges u → v, u' → v' of a base matrix
(DescriptiveComplexity.Site). Attaching Valiant's gadget at every site of a
list l (DescriptiveComplexity.Site.attachAll, on the node type
DescriptiveComplexity.Site.AttachType V l that adds four nodes per site)
multiplies the permanent by 4 per site and leaves the XOR sum
(DescriptiveComplexity.Site.xorSum): the sum, over the choices of one edge
per site, of the permanent of the base minor with the rows and columns of
the chosen edges deleted, a choice contributing nothing when it deletes a
row twice (DescriptiveComplexity.Site.pdel_attachAll). The columns of the
sites must be pairwise distinct and the two rows of a site distinct; the
rows of different sites may coincide, which is what the vanishing of the
repeated choices is for.
The XOR sum is the number of cycle covers of the base graph with the pair
edges in place that use exactly one edge of each site, weighted by the base
entries (DescriptiveComplexity.Site.xorSum_eq_sum, as a sum over the choice
functions).
A site: the two edges u → v and u' → v' a gadget replaces.
- u : V
The row of the first edge.
- u' : V
The row of the second edge.
- v : V
The column of the first edge.
- v' : V
The column of the second edge.
Instances For
Dependency graph
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
Dependency graph
The nodes after attaching a gadget at every site of the list: four more per site.
Equations
Instances For
Dependency graph
Equations
Dependency graph
Dependency graph
The base nodes, among the nodes after the attachments.
Equations
- DescriptiveComplexity.Site.base [] x✝ = x✝
- DescriptiveComplexity.Site.base (head :: l) x✝ = Sum.inl (DescriptiveComplexity.Site.base l x✝)
Instances For
Dependency graph
Dependency graph
The base nodes, as an embedding.
Equations
- DescriptiveComplexity.Site.baseEmb l = { toFun := DescriptiveComplexity.Site.base l, inj' := ⋯ }
Instances For
Dependency graph
Dependency graph
Dependency graph
The gadgets attached at every site of the list.
Equations
- One or more equations did not get rendered due to their size.
- DescriptiveComplexity.Site.attachAll M₀ [] = M₀
Instances For
Dependency graph
The XOR sum: one edge chosen per site, its row and column deleted, a choice deleting a row twice contributing nothing.
Equations
- One or more equations did not get rendered due to their size.
- DescriptiveComplexity.Site.xorSum M₀ [] x✝¹ x✝ = DescriptiveComplexity.pdel M₀ x✝¹ x✝
Instances For
Dependency graph
The columns of the sites of a list.
Equations
- DescriptiveComplexity.Site.cols [] = []
- DescriptiveComplexity.Site.cols (head :: l) = head.v :: head.v' :: DescriptiveComplexity.Site.cols l
Instances For
Dependency graph
Dependency graph
Dependency graph
Attaching a gadget at every site multiplies the permanent by 4 per
site and leaves the XOR sum.
Dependency graph
The XOR sum of self-loop sites, as a sum over the subsets of sites #
The rows deleted by a choice of one edge per site: the first row of the
sites in T, the second row of the others.
Equations
- DescriptiveComplexity.Site.delRows l T = Finset.image (fun (s : DescriptiveComplexity.Site V) => if s ∈ T then s.u else s.u') l.toFinset
Instances For
Dependency graph
Dependency graph
Dependency graph
Dependency graph
The XOR sum of self-loop sites: when every site pairs two self-loops,
the sum is over the subsets T of the sites, the first loop chosen at the
sites of T and the second elsewhere, of the principal minor of the base
matrix with the chosen rows deleted.