Quantum and CircuitsReading edition

MultiplicativeDegree: 12 declarations

Reading tools
Reading libraryFind statementsInspect Lean
Switch work

Saved reading

Read side by side

Verification statements describe the retained edition and its recorded evidence. This HTML presentation adds no Lean execution or proof review.

Start reading

Resources & source

Original TeX with line links · Download TeX

The wording and mathematics follow the retained manuscript. This reading format does not add a proof review or extend Lean coverage.

Skip contents and start reading

MultiplicativeDegree: 12 declarations

L060 withoutWire_length_le

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.length

L061 withoutWire_length_lt

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.length
L062 bprod_write

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

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 s
L064 workspaceDegree_initial

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 0
L065 workspaceDegree_toggle

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

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

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

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) i
L069 canonical_boundary_degree

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 i
L070 canonical_run_coordinate_degree

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) i
L071 canonical_cut_packet_degree

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
Source and conversion record

Source SHA-256: 36eb83548efd74b42264ab400e359c2de20c701b436b132b8b2859312d2dcdba

Unsupported prose commands stop the build. The mathematical expression sequence is checked against the source, with manuscript macros expanded for display.

Conversion records

Notation in Quantum and Circuits

Look up a symbol without leaving this chapter. Select text before opening help to search for it.

Search this work’s notation.

    Symbols can have different meanings in different passages. Read each result in its own context.

    Open the full notation index