tanh(x/xi)ベースの擬連続論理ゲート・比較演算子ライブラリ
Project description
kappalogic (v0.9)
kappa(x/ξ)(デフォルトはtanh、erf/algebraicにも切り替え可能)を
基本ブロックにして、離散的な論理演算・比較演算・場合分けを「実数上の
滑らかな式」として書き直すためのライブラリ。
開発の経緯・迷った点・見つけたことの詳しい記録は dev_notes.md を参照
(こちらは要約と現状の参照用)。
pip install -e .
構成
| モジュール | 内容 |
|---|---|
core.py |
sgn/reg/AND/OR/XOR/比較演算子など基本ゲート、n項融合版AND_n/OR_n |
funcs.py |
int/par(整数・奇偶判定)、max/min/clamp |
kernels.py |
tanh/erf/algebraicカーネルの切り替え |
applications.py |
クロネッカーのデルタ、コラッツ漸化式、板チョコのPoisson源項 |
heat.py |
ξと拡散時間tの対応、熱核によるソフトな一致度報酬 |
search.py |
勾配ベース探索専用の"softモード"とアニーリング解法(anneal_solve, l2_penalty) |
quantum_well.py |
有限区間の熱核・無限井戸型ポテンシャルの量子プロパゲータ(鏡像法) |
field_theory.py |
φ^4理論のキンクソリトン(sgnが厳密解であることの証明付き) |
stat_mech.py |
熱核による分配関数、SUSY QMのWitten指数(McKean-Singer型) |
info_theory.py |
de Bruijnの恒等式(熱拡散のエントロピー変化率とフィッシャー情報量) |
topology.py |
モース理論によるオイラー標数の計算 |
spacetime.py |
光円錐の指示関数 |
bridge.py |
Σ(離散和)と∫(連続積分)の橋渡し、階乗とΓ関数 |
electronic_structure.py |
フェルミ・ディラック占有数=sgn(x,2kT)、DFTの電子スメアリング |
theory.py |
reg/AND系の勾配構造の厳密な命題群(証明付き) |
examples/ |
実行できるデモ4本 |
使用例
from kappalogic import gt, AND, par, collatz_sequence, choc_bar_source
from kappalogic import xi_of_time, heat_step_profile, anneal_solve, soft_gt, l2_penalty
from kappalogic import kink_profile, kink_energy_exact, fermi_occupation
gt(5, 3) # 1.0
kink_energy_exact(xi=1.0) # 4/3 (ソリトンの厳密な質量)
fermi_occupation(eps=0.3, mu=0.5, kT=0.1) # フェルミ・ディラック分布と機械精度で一致
検証済みの主な結果
v0.1で見つかった原案のバグ3件(修正済み、回帰テストあり)
(A>B),(A<B):reg()が符号を2乗で消すため、実際には(A≠B)と同じ値になっていたpar(x): 偶数で-1を返していた(int(x)-int(x/2)に修正)- コラッツ漸化式: 「ステップ番号の偶奇」でなく「値自体の偶奇」で分岐するよう修正
検証済みの技術的な発見
kernel="erf"が階段状初期条件の熱拡散の厳密解と一致(有限差分と誤差5.7e-5)- 有限区間の熱核・無限井戸型ポテンシャルの量子プロパゲータが鏡像法+εプリスクリプションで固有関数展開と機械精度(diff~1e-13)で一致
- SUSY QMのWitten指数がβ=0.01〜10で厳密に1.000000(McKean-Singer型)
- de Bruijnの恒等式(熱拡散のエントロピー変化率=フィッシャー情報量)が誤差1e-10で一致
- モース理論によるオイラー標数がトーラス(0)・球面(2)で教科書通り
- フェルミ・ディラック分布が
sgn(x,2kT)と機械精度で一致(DFTの電子スメアリングと同一構造) - Σ_{n=0}^N n! と∫_0^{N+1}(floor(x))!dxが相対誤差6e-5で一致
- キンクソリトン
tanh(x/ξ)がφ^4理論のEOMを厳密に(sympyの記号微分で)満たし、厳密エネルギーE=4/(3ξ)を導出 AND_n融合とnaive foldの不一致は「途中の部分積がξと同スケールになったとき」に起きることを2万件のランダム試行で99.95%の精度で特定(fusion_is_safe)
先行研究との関係(誠実な位置づけ)
要素技術のほとんどは既存研究の再発明である:
| このライブラリの要素 | 対応する既存研究 |
|---|---|
| tanhベースの滑らかな指示関数 | 相分離理論(Allen-Cahn方程式、拡散界面法、1979年〜) |
| reg/ANDの勾配消失 | van Krieken et al. (2022, Artificial Intelligence)が命題として証明済み |
| 論理ゲート×連続緩和×アニーリング | Petersen et al. (2022, NeurIPS)、実装ライブラリdifflogicも既存 |
| ξ(t)=2√(Dt)のアニーリングスケジュール | 拡散モデルの"Variance Exploding SDE"と数学的に同一 |
| Dirac delta/Heaviside の微分可能な近似 | Smoothing methods for AD、mollifier理論、SPHカーネルとして既に成熟 |
| フェルミ・ディラック占有数=sgn(x,2kT) | DFT計算の電子スメアリング手法(実務で広く使われる既存技法) |
見つけた本物の区別: 標準的なt-norm(van Krieken論文の分析対象)は
真偽度[0,1]の範囲で単調だが、reg(x)=tanh(x/xi)^2は任意の実数を
受け取り「0か非0か」を判定する非単調な"検出器"であり、t-normの
枠組みには存在しない。むしろmollifier/AD平滑化の系譜に近い。この
2つの研究コミュニティを明示的に繋いだ文献は検索した範囲では見当たらなかった。
新規性を主張できるとすれば、この細い糸のみ(詳細はdev_notes.md)。
率直な限界(誇張しないための注記)
- hardモード(reg/AND/OR)は離散的な場合分けをif文なしで解析式に埋め込む 用途には向くが、それ自体を勾配降下の目的関数にしてNP完全問題を 解くのには向かない(勾配消失のため)。
- softモード+アニーリングは「うまくいく場合がある局所探索の補助」で あって、P=NPを覆すようなものではない。
- 個々の要素技術はほぼ全て先行研究があり(一部はより厳密な形で)、 「大発見」と呼べる新定理・新予想は今のところ出ていない。
テスト・サンプル実行
pytest tests/ -v # 110 tests
python examples/heat_equation_demo.py
python examples/karnaugh_fusion_benchmark.py
python examples/sat_3var_demo.py
python examples/infinite_well_demo.py
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file kappalogic-0.9.0.tar.gz.
File metadata
- Download URL: kappalogic-0.9.0.tar.gz
- Upload date:
- Size: 32.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ff0419dae5996d0b9ad6f53b993975b79fed083f172d95de4f9cd3661d0fdeb2
|
|
| MD5 |
5b3a00795b31178a57a1fc76deef990b
|
|
| BLAKE2b-256 |
2db31cbf782a40a37c69f2f52b4e0c67e344da19600c9c96583104fb760b29e4
|
Provenance
The following attestation bundles were made for kappalogic-0.9.0.tar.gz:
Publisher:
pypi.yml on Geppetto-s-Puppet/kappalogic
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
kappalogic-0.9.0.tar.gz -
Subject digest:
ff0419dae5996d0b9ad6f53b993975b79fed083f172d95de4f9cd3661d0fdeb2 - Sigstore transparency entry: 2180797638
- Sigstore integration time:
-
Permalink:
Geppetto-s-Puppet/kappalogic@6f8a2f44dd8e5555df55d6d446df674912e4b7f8 -
Branch / Tag:
refs/tags/v0.9 - Owner: https://github.com/Geppetto-s-Puppet
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@6f8a2f44dd8e5555df55d6d446df674912e4b7f8 -
Trigger Event:
release
-
Statement type:
File details
Details for the file kappalogic-0.9.0-py3-none-any.whl.
File metadata
- Download URL: kappalogic-0.9.0-py3-none-any.whl
- Upload date:
- Size: 32.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
755c6ef01d3a8618314b3096b2120251c32ed16b45eec25204bbc34cb9b8a7a3
|
|
| MD5 |
819094d2624193b1090e85be9ae70afd
|
|
| BLAKE2b-256 |
ef3e56ca2279fb5250549d835af48a898dfe5813fba26081b70a704269b58b74
|
Provenance
The following attestation bundles were made for kappalogic-0.9.0-py3-none-any.whl:
Publisher:
pypi.yml on Geppetto-s-Puppet/kappalogic
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
kappalogic-0.9.0-py3-none-any.whl -
Subject digest:
755c6ef01d3a8618314b3096b2120251c32ed16b45eec25204bbc34cb9b8a7a3 - Sigstore transparency entry: 2180797739
- Sigstore integration time:
-
Permalink:
Geppetto-s-Puppet/kappalogic@6f8a2f44dd8e5555df55d6d446df674912e4b7f8 -
Branch / Tag:
refs/tags/v0.9 - Owner: https://github.com/Geppetto-s-Puppet
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@6f8a2f44dd8e5555df55d6d446df674912e4b7f8 -
Trigger Event:
release
-
Statement type: