SuperAPI AI 工具集

algebraic-rewriting

写作与研究

查看项目

更新于 10-16 08:07

技能介绍

用途:AlgebraicRewriting.jl 是 Julia 库,用于对 C-Sets 及其他 Catlab.jl 数据结构执行范畴论重写,实现声明式数据变换。

主要能力:支持三种重写方式——DPO(双推补,安全删除,不留悬空边)、SPO(单推补,贪婪删除)、SqPO(Sesqui-Pushout,支持克隆与删除)。重写规则由 L(匹配模式)、K(保留接口)、R(替换模式)三部分组成,用 Rule(L, K, R) 定义,SqPO 通过 type=:SqPO 指定。

使用方式:用 @acset 宏定义图等结构,例如 L = @acset Graph begin V=2; E=1; src=[1]; tgt=[2] end。用 homomorphisms(L, G) 查找匹配,再用 rewrite(rule, G, matches[1]) 应用重写。克隆顶点示例:L 为 V=1,K 为 V=1,R 为 V=2,并设 type=:SqPO。资料还提及 Gay.jl 集成,如 gay_seed!(0xabfca37b6b4bc699) 与 Enzyme.gradient(Forward, loss, params, seed)。

适用场景:图变换、C-Sets 数据结构的声明式重写、范畴论建模,以及需要安全删除或克隆语义的重写任务。

限制:资料未提供安装命令、版本要求、性能数据、收费信息及完整 API 文档;部分示例(如 Gay.jl 集成)细节有限,需参考官方文档与仓库。