# 概要
- 従来のコード編集は、テキスト編集であった
- [[LLM]]に編集させるときは、無駄なコンテクストウィンドウを消費していた
- ソースコード代数を提案し、あたかも方程式の書き換えのように[[AST]]を編集できるようにすることで、トークン消費量を大幅に削減した
- [[共同編集]], [[バージョン管理]]でも使えそう!
# 詳細
## Potency
操作の効力の分類。
- [[Nullipotent]]: ソースコード代数の操作には、そのコードベースに適用するとコードの見た目は変化するが、機能的には元と振る舞いが保存されるものがある。このような操作のことを、Nullipotentという。つまり副作用がない変形操作。
- [[Pluripotent]]: 機能的な変更が行われる操作。
### 例
![[Pasted image 20260731165258.png]]
- $AddParam$: これは[[Nullipotent]]。なぜならパラメータを追加しただけでは振る舞いは変化しないから。
- $MakeCond$: これは一般に[[Pluripotent]]。振る舞いが変化するから。しかし、この条件は$includeBonus$であり、前段のAddParamではデフォルトがTrueなので、実は振る舞いは変化しなくてこの場合は[[Nullipotent]]。
- $MakeOptional$(合成): これは上記より[[Nullipotent]]。
### Potencyは自動的に判定不能
- [[ライスの定理]]より、ある操作が[[Nullipotent]]かどうか