Skip to content

Latest commit

 

History

History
193 lines (162 loc) · 4.7 KB

File metadata and controls

193 lines (162 loc) · 4.7 KB

Lecture 5: Grid Components & Combinators

image-20250126230100862

Beside & Below

image-20250126230151982

$$ \lang a , \lang b, c\rang\rang (Q \leftrightarrow R) \lang \lang p, q\rang, r\rang $$
rsh = <a,<b,z>> $wire <<a,b>,z>.
lsh = <<a,b>,z> $wire <a,<b,z>>.
fst R = [R, id].
snd R = [id, R].


R <-> S = rsh ; fst R ; lsh ; snd S ; rsh.
#    b       c
# a  R  -d-  S r
#    p       q
# <a <b c>> <-> <<p, q>, r>
# rsh   : <<a, b>, c>
# fst R : <(R <a, b>), c>
#         <<p, d>, c>
# lsh   : <p, <d, c>>
# snd S : <p, S <d, c>>
#         <p. <q, r>>
# rsh   : <<p, q>, r>

Below: $$ Q\updownarrow R = (Q^{-1} \leftrightarrow R^{-1})^{-1} $$ image-20250126231341918

fsth  R = R <-> swap.
sndh  R = swap <-> R.
fstv  R = R <|> swap.
sndh  R = swap <|> R.

image-20250126231756374

FA 是 Full Adder,其描述二进制数的加法运算。

其本质上在计算 $x+y+r \to \lang s, c\rang$.

$x, y$ 是输入数字,$r$ 是上一个 FA 得到的进位,其存在是为了帮助组合。

$s$ 是和,$c$ 是进位

Laws

image-20250126232628432

$$ (Q\updownarrow P) \lrarr (S\updownarrow R) = (Q \lrarr S) \updownarrow (P\lrarr R) $$ ![](./img/lec5/image-20250126232946230.png) $$ \begin{align*} & [A, [B, C]] ; Q\lrarr R; [[U, V], W] \\ =&([A, B] ; Q ; \text{fsd} U) \lrarr (\text{snd} C; R ; [V, W])

\end{align*} $$

Transposed Conjugate \\

image-20250126233617802

$$ \begin{align*} R \text{ \\\\ } [P, Q] &= [Q^{-1}, P^{-1}] ; R ; [P, Q] \\&= [Q, P]^{-1} ; R ; [P, Q] \end{align*} $$

Transposed Conjugate vs Conjugate $$ R \text{ \\ } [P, Q] = [Q, P] ^ {-1}; R; [P, Q]. \ R \text{ \ } [P, Q] = [P, Q]^{-1}; R; [P, Q]. $$

$$ \begin{align*} R \text{ \\ } (\text{fst } Q) &= R \text{ \\ } [Q, id] \&= [id, Q]^{-1} ; R ; [Q, id] \ &= [id, Q^{-1}] ; R ; [Q, id] \&= (\text{snd }Q^{-1}) ; R; \text{fst } Q

\end{align*} $$

$$ (\text{fstv }R ) \lrarr (\text{sndv }S ) $$

fstv R      sndv S
  |           |
- + -       - S -
  |    <->    |
- R -       - + -
  |           |

$$ \begin{align*} &(\text{fstv }R ) \lrarr (\text{sndv }S ) \=& ((\text{fst }R) \updownarrow \text{swap}) \lrarr (\text{swap} \updownarrow (\text{snd }S))

\=& ((\text{sndv }S) \lrarr (\text{fstv }R)) \text{ \\ } (\text{fst swap}) \=& \text{snd swap}^{-1} ; (\text{sndv }s) \lrarr (\text{fstv }R); \text{fst swap} \end{align*} $$

image-20250127014605938 image-20250127014611337
Original Result

Repeated Parallel Composition

image-20250128100656070 $$ \begin{align*}

\text{(base case) } & \text{map } 0, R = []

\\text{(inductive case) } & \text{map } n,R = (\text{apl }n)^{-1} ; [ R, \text{map }(n-1)]; \text{apl }n \end{align*} $$

$$ \lang xs\rang \sim\underbrace{\lang x, \lang xs\rang \rang}_{(\text{apl }n)^{-1}} \sim\underbrace{\lang y, \lang ys\rang \rang}_{[ R, \text{map }(n-1)]} \sim\underbrace{ \lang ys \rang }_{\text{apl } n} $$

Row: Repeated Beside

$$ \begin{align*} \text{(operator) } &R : \lang x, y\rang \sim \lang y', x'\rang \

\text{(base case) } & \text{row } 1, R : & \lang x, \lang y\rang\rang \sim \lang \lang y'\rang, x'\rang &= \text{snd } [-]^{-1}; R; \text{fst }[-] & \ \text{(assume) } & \text{row } n , R : & \lang x, \lang ys\rang\rang \sim \lang \lang y's\rang, x'\rang \ & R\lrarr (\text{row } n , R) : & \sim\lang x, \lang y, \lang ys \rang\rang\rang \ \text{(inductive case) } & \text{row } (n+1), R : & \lang x, \lang y, ys \rang\rang \sim \lang \lang y', y's\rang, x'\rang &= \underbrace{\text{snd }(\text{apl }n)^{-1}}{\sim\lang x, \lang y, \lang ys\rang \rang\rang } ; \underbrace{(R\lrarr \text{row } n)}{\lang x, \lang y, \lang ys\rang\rang\rang\sim\lang\lang y', \lang y's\rang\rang, x'\rang} ; \text{fst } (\text{apl } n)

\end{align*} $$