subset - 在合金中获取签名子集
问题描述
我想知道是否有办法在 Alloy 的给定签名中提取集合的子集。然后将提取的集合用于定义模型的某些事实。
假设以下模型:
abstract sig Status{}
one sig Status1 extends Status{}
one sig Status2 extends Status{}
sig A {
status: one Status
}
sig B {
setA: set A
}
fun SubsetOfSetAinB [b: B] : set A {
//have some kind of operation here
//that returns a subset of b.setA where b.setA.status in Status1
}
感谢您的时间。
解决方案
您应该能够通过设置的交集来获得它,例如b.setA & Status1.~status
.
推荐阅读
- node.js - 我的 API 可以在没有 passport.authenticate 的情况下正常工作,但是有了它,它会给出错误 Cannot set headers after they are sent to the client
- java - 从 JavaFX 选项卡内的字段中获取数据
- html - 带弧线的 CSS 渐变
- reactjs - 如何防止每个组件在获取道具之前渲染?
- python-3.x - 如何正确计算给定时间段之间的时间间隔?
- oracle - 为什么 Oracle 忽略 USE_NL_WITH_INDEX 提示?
- docker - 从二进制文件安装 Docker 引擎与通过 yum 和 pip 安装 docker 之间有什么区别
- c++ - InitializeCriticalSection works in one project, but fails in another
- mysql - 如何使用多个 JOIN 加速 SQL 查询?
- java - java.lang.NoClassDefFoundError: org/elasticsearch/script/mustache/SearchTemplateRequest