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}
$$

fsth R = R <-> swap.
sndh R = swap <-> R.
fstv R = R <|> swap.
sndh R = swap <|> R.$$ (Q\updownarrow P) \lrarr (S\updownarrow R) = (Q \lrarr S) \updownarrow (P\lrarr R) $$  $$ \begin{align*} & [A, [B, C]] ; Q\lrarr R; [[U, V], W] \\ =&([A, B] ; Q ; \text{fsd} U) \lrarr (\text{snd} C; R ; [V, W])FA 是 Full Adder,其描述二进制数的加法运算。
其本质上在计算
$x+y+r \to \lang s, c\rang$ .
$x, y$ 是输入数字,$r$ 是上一个 FA 得到的进位,其存在是为了帮助组合。
$s$ 是和,$c$ 是进位
\end{align*} $$
$$ \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*} $$
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*} $$
![]() |
![]() |
|---|---|
| Original | Result |
Repeated Parallel Composition
$$ \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} $$
$$ \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*} $$









