Quantum and CircuitsReading edition

Gates: 16 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

Gates: 16 declarations

L001 write_same

Source. CircuitObstructions/Gates.lean:17
Block. 01 Axioms. propext

CircuitObstructions.write_same {W : Type} [DecidableEq W] (s : CircuitObstructions.State W) (t : W) (b : Bool) :
  CircuitObstructions.write s t b t = b

L002 write_other

Source. CircuitObstructions/Gates.lean:20
Block. 01 Axioms. propext

CircuitObstructions.write_other {W : Type} [DecidableEq W] (s : CircuitObstructions.State W) (t i : W) (b : Bool)
  (h : i ≠ t) : CircuitObstructions.write s t b i = s i
L003 xor_cancel_right

Source. CircuitObstructions/Gates.lean:23
Block. 01 Axioms. none

CircuitObstructions.xor_cancel_right (a b : Bool) : (a ^^ b ^^ b) = a
L004 xor_cancel_left

Source. CircuitObstructions/Gates.lean:26
Block. 01 Axioms. none

CircuitObstructions.xor_cancel_left (a b : Bool) : (a ^^ (a ^^ b)) = b
L005 xor_commute

Source. CircuitObstructions/Gates.lean:29
Block. 01 Axioms. none

CircuitObstructions.xor_commute (a b : Bool) : (a ^^ b) = (b ^^ a)
L006 xor_true_iff_ne

Source. CircuitObstructions/Gates.lean:32
Block. 01 Axioms. none

CircuitObstructions.xor_true_iff_ne (a b : Bool) : (a ^^ b) = true ↔ a ≠ b
L007 eval_involutive

Source. CircuitObstructions/Gates.lean:48
Block. 01 Axioms. propext, Quot.sound

CircuitObstructions.Gate.eval_involutive {W : Type} [DecidableEq W] (g : CircuitObstructions.Gate W)
  (s : CircuitObstructions.State W) : g.eval (g.eval s) = s
L008 eval_injective

Source. CircuitObstructions/Gates.lean:67
Block. 01 Axioms. propext, Quot.sound

CircuitObstructions.Gate.eval_injective {W : Type} [DecidableEq W] (g : CircuitObstructions.Gate W)
  {s t : CircuitObstructions.State W} (h : g.eval s = g.eval t) : s = t
L009 run_nil

Source. CircuitObstructions/Gates.lean:78
Block. 01 Axioms. none

CircuitObstructions.run_nil {W : Type} [DecidableEq W] (s : CircuitObstructions.State W) :
  CircuitObstructions.run [] s = s
L010 run_cons

Source. CircuitObstructions/Gates.lean:81
Block. 01 Axioms. none

CircuitObstructions.run_cons {W : Type} [DecidableEq W] (g : CircuitObstructions.Gate W)
  (gs : CircuitObstructions.Circuit W) (s : CircuitObstructions.State W) :
  CircuitObstructions.run (g :: gs) s = CircuitObstructions.run gs (g.eval s)
L011 run_append

Source. CircuitObstructions/Gates.lean:84
Block. 01 Axioms. none

CircuitObstructions.run_append {W : Type} [DecidableEq W] (p q : CircuitObstructions.Circuit W)
  (s : CircuitObstructions.State W) :
  CircuitObstructions.run (p ++ q) s = CircuitObstructions.run q (CircuitObstructions.run p s)
L012 run_reverse_run

Source. CircuitObstructions/Gates.lean:90
Block. 01 Axioms. propext, Quot.sound

CircuitObstructions.run_reverse_run {W : Type} [DecidableEq W] (c : CircuitObstructions.Circuit W)
  (s : CircuitObstructions.State W) : CircuitObstructions.run (List.reverse c) (CircuitObstructions.run c s) = s
L013 run_run_reverse

Source. CircuitObstructions/Gates.lean:98
Block. 01 Axioms. propext, Quot.sound

CircuitObstructions.run_run_reverse {W : Type} [DecidableEq W] (c : CircuitObstructions.Circuit W)
  (s : CircuitObstructions.State W) : CircuitObstructions.run c (CircuitObstructions.run (List.reverse c) s) = s
L014 run_injective

Source. CircuitObstructions/Gates.lean:102
Block. 01 Axioms. propext, Quot.sound

CircuitObstructions.run_injective {W : Type} [DecidableEq W] (c : CircuitObstructions.Circuit W)
  {s t : CircuitObstructions.State W} (h : CircuitObstructions.run c s = CircuitObstructions.run c t) : s = t
L015 toffoliCount_append

Source. CircuitObstructions/Gates.lean:114
Block. 01 Axioms. propext

CircuitObstructions.toffoliCount_append {W : Type} (p q : CircuitObstructions.Circuit W) :
  CircuitObstructions.toffoliCount (p ++ q) = CircuitObstructions.toffoliCount p + CircuitObstructions.toffoliCount q
L016 toffoliCount_reverse

Source. CircuitObstructions/Gates.lean:118
Block. 01 Axioms. propext

CircuitObstructions.toffoliCount_reverse {W : Type} (c : CircuitObstructions.Circuit W) :
  CircuitObstructions.toffoliCount (List.reverse c) = CircuitObstructions.toffoliCount c
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