当前位置: 首页>>代码示例>>Java>>正文


Java Expression.one方法代码示例

本文整理汇总了Java中kodkod.ast.Expression.one方法的典型用法代码示例。如果您正苦于以下问题:Java Expression.one方法的具体用法?Java Expression.one怎么用?Java Expression.one使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在kodkod.ast.Expression的用法示例。


在下文中一共展示了Expression.one方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: size

import kodkod.ast.Expression; //导入方法依赖的package包/类
/** Helper method that returns the constraint that the sig has exactly "n" elements, or at most "n" elements */
private Formula size(Sig sig, int n, boolean exact) {
    Expression a = sol.a2k(sig);
    if (n<=0) return a.no();
    if (n==1) return exact ? a.one() : a.lone();
    Formula f = exact ? Formula.TRUE : null;
    Decls d = null;
    Expression sum = null;
    while(n>0) {
       n--;
       Variable v = Variable.unary("v" + Integer.toString(TranslateAlloyToKodkod.cnt++));
       kodkod.ast.Decl dd = v.oneOf(a);
       if (d==null) d=dd; else d=dd.and(d);
       if (sum==null) sum=v; else { if (f!=null) f=v.intersection(sum).no().and(f); sum=v.union(sum); }
    }
    if (f!=null) return sum.eq(a).and(f).forSome(d); else return a.no().or(sum.eq(a).forSome(d));
}
 
开发者ID:ModelWriter,项目名称:Tarski,代码行数:18,代码来源:BoundsComputer.java

示例2: size

import kodkod.ast.Expression; //导入方法依赖的package包/类
/**
 * Helper method that returns the constraint that the sig has exactly "n"
 * elements, or at most "n" elements
 */
private Formula size(Sig sig, int n, boolean exact) {
	Expression a = sol.a2k(sig);
	if (n <= 0)
		return a.no();
	if (n == 1)
		return exact ? a.one() : a.lone();
	Formula f = exact ? Formula.TRUE : null;
	Decls d = null;
	Expression sum = null;
	while (n > 0) {
		n--;
		Variable v = Variable.unary("v" + Integer.toString(TranslateAlloyToKodkod.cnt++));
		kodkod.ast.Decl dd = v.oneOf(a);
		if (d == null)
			d = dd;
		else
			d = dd.and(d);
		if (sum == null)
			sum = v;
		else {
			if (f != null)
				f = v.intersection(sum).no().and(f);
			sum = v.union(sum);
		}
	}
	if (f != null)
		return sum.eq(a).and(f).forSome(d);
	else
		return a.no().or(sum.eq(a).forSome(d));
}
 
开发者ID:AlloyTools,项目名称:org.alloytools.alloy,代码行数:35,代码来源:BoundsComputer.java


注:本文中的kodkod.ast.Expression.one方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。