Matrix-symmetric circuits
Lax461425.MatrixSymmetry · concepts/Lax461425/MatrixSymmetry.lean · lax-461425
No public endorsements yet.
Loading review…
Sign in with ORCIDNatural Language Statement
Definition
For , let be the entries of an matrix of variables. The group acts on by permuting rows and columns independently, , and on the disjoint union of a copy of indexing the rows (the left side) and a copy indexing the columns (the right side).
Let be an algebraic circuit with variables . A permutation of the gates of extends if it preserves the labels of internal gates and the multiplicities of wires, , and maps every input gate labelled by a variable to a gate labelled by and every input gate labelled by a constant to a gate labelled by the same constant. Such permutations are the circuit automorphisms extending .
The circuit is matrix-symmetric if every extends to a circuit automorphism, and rigid if every extends to a unique circuit automorphism. Let be the group of circuit automorphisms extending some element of . The orbit size of is
the maximum taken over all gates of .
Concept map
Lean source view on GitHub
| 1 | import Mathlib.GroupTheory.Perm.Basic |
| 2 | import Lax461425.Circuits |
| 3 | |
| 4 | /-! |
| 5 | --- |
| 6 | title: Matrix-symmetric circuits |
| 7 | type: definition |
| 8 | --- |
| 9 | For , let be the entries of an |
| 10 | matrix of variables. The group |
| 11 | acts on by permuting rows and columns independently, |
| 12 | , and on the disjoint union |
| 13 | of a copy of indexing the rows (the left side) and a copy indexing the |
| 14 | columns (the right side). |
| 15 | |
| 16 | Let be an algebraic circuit with variables . A permutation of the |
| 17 | gates of *extends* if it preserves the labels of internal gates and |
| 18 | the multiplicities of wires, , and maps every input gate |
| 19 | labelled by a variable to a gate labelled by and every input gate labelled by a |
| 20 | constant to a gate labelled by the same constant. Such permutations are the circuit |
| 21 | automorphisms extending . |
| 22 | |
| 23 | The circuit is *matrix-symmetric* if every extends to a circuit |
| 24 | automorphism, and *rigid* if every extends to a unique circuit |
| 25 | automorphism. Let be the group of circuit automorphisms extending |
| 26 | some element of . The *orbit size* of is |
| 27 | |
| 28 | |
| 29 | |
| 30 | the maximum taken over all gates of . |
| 31 | -/ |
| 32 | |
| 33 | namespace Lax461425.MatrixSymmetry |
| 34 | |
| 35 | open Circuits |
| 36 | |
| 37 | /-- The group `Γₙ = Symₙ × Symₙ` permuting rows and columns. -/ |
| 38 | abbrev Γ (n : ℕ) := Equiv.Perm (Fin n) × Equiv.Perm (Fin n) |
| 39 | |
| 40 | /-- The action of `Γₙ` on the variables: `(σ, τ) x_{i,j} = x_{σ(i), τ(j)}`. -/ |
| 41 | def actVar {n : ℕ} (γ : Γ n) (x : Fin n × Fin n) : Fin n × Fin n := |
| 42 | (γ.1 x.1, γ.2 x.2) |
| 43 | |
| 44 | /-- The action of `Γₙ` on `[n] ⊎ [n]`: rows on the left, columns on the right. -/ |
| 45 | def actPoint {n : ℕ} (γ : Γ n) : Fin n ⊕ Fin n → Fin n ⊕ Fin n := |
| 46 | Sum.map γ.1 γ.2 |
| 47 | |
| 48 | variable {V K : Type*} |
| 49 | |
| 50 | /-- The permutation `σ` of the gates is a circuit automorphism extending the renaming `π` of |
| 51 | the variables. -/ |
| 52 | def Extends (C : Circuit V K) (σ : C.Gate ≃ C.Gate) (π : V → V) : Prop := |
| 53 | (∀ g, C.label (σ g) = (C.label g).map π) ∧ ∀ g h, C.wire (σ g) (σ h) = C.wire g h |
| 54 | |
| 55 | variable {n : ℕ} (C : Circuit (Fin n × Fin n) K) |
| 56 | |
| 57 | /-- Every element of `Γₙ` extends to a circuit automorphism. -/ |
| 58 | def IsMatrixSymmetric : Prop := |
| 59 | ∀ γ : Γ n, ∃ σ : C.Gate ≃ C.Gate, Extends C σ (actVar γ) |
| 60 | |
| 61 | /-- Every element of `Γₙ` extends to a unique circuit automorphism. -/ |
| 62 | def IsRigid : Prop := |
| 63 | ∀ γ : Γ n, ∃! σ : C.Gate ≃ C.Gate, Extends C σ (actVar γ) |
| 64 | |
| 65 | /-- The orbit of a gate under the circuit automorphisms extending elements of `Γₙ`. -/ |
| 66 | def orbit (g : C.Gate) : Set C.Gate := |
| 67 | {g' | ∃ (γ : Γ n) (σ : C.Gate ≃ C.Gate), Extends C σ (actVar γ) ∧ σ g = g'} |
| 68 | |
| 69 | /-- The maximum size of an orbit of a gate. -/ |
| 70 | noncomputable def orbitSize : ℕ := |
| 71 | Finset.univ.sup fun g => (orbit C g).ncard |
| 72 | |
| 73 | end Lax461425.MatrixSymmetry |
| 74 |
Builds on
From Mathlib
Discussion
Ask a question or add context. Endorsements and structured flags are kept in the review panel above.
0 comments