@Test public void testUnfold() { Assert.assertEquals(Eq(x1.getRef(), Add(y0.getRef(), Int(1))), PathUtils.unfold(Eq(Prime(vx.getRef()), Add(vy.getRef(), Int(1))), 0)); Assert.assertEquals(Eq(x2.getRef(), Add(y1.getRef(), Int(1))), PathUtils.unfold(Eq(Prime(vx.getRef()), Add(vy.getRef(), Int(1))), 1)); }
public static <T extends Type> Expr<T> unfold(final Expr<T> expr, final VarIndexing indexing) { checkNotNull(expr); checkNotNull(indexing); final UnfoldHelper helper = new UnfoldHelper(indexing); return helper.unfold(expr, 0); }
PathUtils { public static <T extends Type> Expr<T> unfold(final Expr<T> expr, final VarIndexing indexing) { checkNotNull(expr); checkNotNull(indexing); final UnfoldHelper helper = new UnfoldHelper(indexing); return helper.unfold(expr, 0); } }
PathUtils { public static <T extends Type> Expr<T> unfold(final Expr<T> expr, final VarIndexing indexing) { checkNotNull(expr); checkNotNull(indexing); final UnfoldHelper helper = new UnfoldHelper(indexing); return helper.unfold(expr, 0); } private  PathUtils(); }
PathUtils { public static <T extends Type> Expr<T> unfold(final Expr<T> expr, final VarIndexing indexing) { checkNotNull(expr); checkNotNull(indexing); final UnfoldHelper helper = new UnfoldHelper(indexing); return helper.unfold(expr, 0); } private  PathUtils(); static VarIndexing countPrimes(final Expr<?> expr); static Expr<T> unfold(final Expr<T> expr, final VarIndexing indexing); static Expr<T> unfold(final Expr<T> expr, final int i); static Expr<T> foldin(final Expr<T> expr, final VarIndexing indexing); static Expr<T> foldin(final Expr<T> expr, final int i); static Valuation extractValuation(final Valuation model, final VarIndexing indexing); static Valuation extractValuation(final Valuation model, final int i); static Valuation extractValuation(final Valuation model, final VarIndexing indexing,
											 final Collection<? extends VarDecl<?>> varDecls); static Valuation extractValuation(final Valuation model, final int i,
											 final Collection<? extends VarDecl<?>> varDecls); }
PathUtils { public static <T extends Type> Expr<T> unfold(final Expr<T> expr, final VarIndexing indexing) { checkNotNull(expr); checkNotNull(indexing); final UnfoldHelper helper = new UnfoldHelper(indexing); return helper.unfold(expr, 0); } private  PathUtils(); static VarIndexing countPrimes(final Expr<?> expr); static Expr<T> unfold(final Expr<T> expr, final VarIndexing indexing); static Expr<T> unfold(final Expr<T> expr, final int i); static Expr<T> foldin(final Expr<T> expr, final VarIndexing indexing); static Expr<T> foldin(final Expr<T> expr, final int i); static Valuation extractValuation(final Valuation model, final VarIndexing indexing); static Valuation extractValuation(final Valuation model, final int i); static Valuation extractValuation(final Valuation model, final VarIndexing indexing,
											 final Collection<? extends VarDecl<?>> varDecls); static Valuation extractValuation(final Valuation model, final int i,
											 final Collection<? extends VarDecl<?>> varDecls);  }