MultiplicativeDegree: 12 declarations
On this page · Permalink · Source line 1035
L060 withoutWire_length_le
On this page · Permalink · Source line 1037
Source. CircuitObstructions/MultiplicativeDegree.lean:17
Block. 02 Axioms. propext
CircuitObstructions.withoutWire_length_le {W : Type} [DecidableEq W] (l : List W) (t : W) :
(CircuitObstructions.withoutWire l t).length ≤ l.lengthL061 withoutWire_length_lt
On this page · Permalink · Source line 1047
Source. CircuitObstructions/MultiplicativeDegree.lean:21
Block. 02 Axioms. propext, Quot.sound
CircuitObstructions.withoutWire_length_lt {W : Type} [DecidableEq W] (l : List W) (t : W) (ht : t ∈ l) :
(CircuitObstructions.withoutWire l t).length + 1 ≤ l.lengthL062 bprod_write
On this page · Permalink · Source line 1057
Source. CircuitObstructions/MultiplicativeDegree.lean:33
Block. 02 Axioms. propext, Quot.sound
CircuitObstructions.bprod_write {W : Type} [DecidableEq W] (l : List W) (s : CircuitObstructions.State W) (t : W)
(b : Bool) :
CircuitObstructions.bprod l (CircuitObstructions.write s t b) =
((if t ∈ l then b else true) && CircuitObstructions.bprod (CircuitObstructions.withoutWire l t) s)L063 bprod_write_absent
On this page · Permalink · Source line 1069
Source. CircuitObstructions/MultiplicativeDegree.lean:48
Block. 02 Axioms. propext
CircuitObstructions.bprod_write_absent {W : Type} [DecidableEq W] (l : List W) (s : CircuitObstructions.State W) (t : W)
(b : Bool) (ht : ¬t ∈ l) :
CircuitObstructions.bprod l (CircuitObstructions.write s t b) = CircuitObstructions.bprod l sL064 workspaceDegree_initial
On this page · Permalink · Source line 1080
Source. CircuitObstructions/MultiplicativeDegree.lean:62
Block. 02 Axioms. propext, Quot.sound
CircuitObstructions.workspaceDegree_initial {n : Nat} {W : Type} (s : (Fin n → Bool) → CircuitObstructions.State W)
(h : ∀ (i : W), CircuitObstructions.DegreeLE 1 fun x => s x i) : CircuitObstructions.WorkspaceDegree s 0L065 workspaceDegree_toggle
On this page · Permalink · Source line 1090
Source. CircuitObstructions/MultiplicativeDegree.lean:73
Block. 02 Axioms. propext, Quot.sound
CircuitObstructions.workspaceDegree_toggle {n : Nat} {W : Type} [DecidableEq W]
(s : (Fin n → Bool) → CircuitObstructions.State W) (t : W) (controls : List W) (k : Nat)
(h : CircuitObstructions.WorkspaceDegree s k) :
CircuitObstructions.WorkspaceDegree (CircuitObstructions.toggleProduct s t controls) (k + (controls.length - 1))L066 workspaceDegree_gate
On this page · Permalink · Source line 1102
Source. CircuitObstructions/MultiplicativeDegree.lean:104
Block. 02 Axioms. propext, Quot.sound
CircuitObstructions.workspaceDegree_gate {n : Nat} {W : Type} [DecidableEq W]
(s : (Fin n → Bool) → CircuitObstructions.State W) (g : CircuitObstructions.Gate W) (k : Nat)
(h : CircuitObstructions.WorkspaceDegree s k) :
CircuitObstructions.WorkspaceDegree (fun x => g.eval (s x)) (k + g.toffoliCost)L067 workspaceDegree_run
On this page · Permalink · Source line 1114
Source. CircuitObstructions/MultiplicativeDegree.lean:128
Block. 02 Axioms. propext, Quot.sound
CircuitObstructions.workspaceDegree_run {n : Nat} {W : Type} [DecidableEq W] (c : CircuitObstructions.Circuit W)
(s : (Fin n → Bool) → CircuitObstructions.State W) (k : Nat) (h : CircuitObstructions.WorkspaceDegree s k) :
CircuitObstructions.WorkspaceDegree (fun x => CircuitObstructions.run c (s x))
(k + CircuitObstructions.toffoliCount c)L068 run_coordinate_degree
On this page · Permalink · Source line 1126
Source. CircuitObstructions/MultiplicativeDegree.lean:139
Block. 02 Axioms. propext, Quot.sound
CircuitObstructions.run_coordinate_degree {n : Nat} {W : Type} [DecidableEq W] (c : CircuitObstructions.Circuit W)
(s : (Fin n → Bool) → CircuitObstructions.State W) (hs : ∀ (i : W), CircuitObstructions.DegreeLE 1 fun x => s x i)
(i : W) :
CircuitObstructions.DegreeLE (CircuitObstructions.toffoliCount c + 1) fun x => CircuitObstructions.run c (s x) iL069 canonical_boundary_degree
On this page · Permalink · Source line 1138
Source. CircuitObstructions/MultiplicativeDegree.lean:146
Block. 02 Axioms. propext, Quot.sound
CircuitObstructions.canonical_boundary_degree (n a : Nat) (b : Bool) (i : CircuitObstructions.CanonicalWire n a) :
CircuitObstructions.DegreeLE 1 fun x => (CircuitObstructions.canonicalBoundary n a).encode x b iL070 canonical_run_coordinate_degree
On this page · Permalink · Source line 1148
Source. CircuitObstructions/MultiplicativeDegree.lean:155
Block. 02 Axioms. propext, Quot.sound
CircuitObstructions.canonical_run_coordinate_degree (n a : Nat)
(c : CircuitObstructions.Circuit (CircuitObstructions.CanonicalWire n a)) (b : Bool)
(i : CircuitObstructions.CanonicalWire n a) :
CircuitObstructions.DegreeLE (CircuitObstructions.toffoliCount c + 1) fun x =>
CircuitObstructions.run c ((CircuitObstructions.canonicalBoundary n a).encode x b) iL071 canonical_cut_packet_degree
On this page · Permalink · Source line 1161
Source. CircuitObstructions/MultiplicativeDegree.lean:161
Block. 02 Axioms. propext, Quot.sound
CircuitObstructions.canonical_cut_packet_degree (n a : Nat)
(p q : CircuitObstructions.Circuit (CircuitObstructions.CanonicalWire n a))
(i : CircuitObstructions.CanonicalWire n a) :
CircuitObstructions.DegreeLE (max (CircuitObstructions.toffoliCount p) (CircuitObstructions.toffoliCount q) + 1)
fun x => CircuitObstructions.packet (CircuitObstructions.canonicalBoundary n a) p q x i