Exemple #1
0
void test11()
{
  Flags flags = vc_createFlags();
  VC vc = vc_createValidityChecker(flags);
  Type a = vc_createType(vc, "a");
  Type aa = vc_funType1(vc, a, a);
  Op f = vc_createOp(vc, "f", aa);
  Expr x = vc_varExpr(vc, "x", a);
  Expr fx = vc_funExpr1(vc, f, x);
  Expr ffx = vc_funExpr1(vc, f, fx);
  Expr e = vc_eqExpr(vc, x, fx);
  Expr expectE = vc_eqExpr(vc, fx, ffx);
  Expr newE = vc_substExpr(vc, e, &x, 1, &fx, 1);
  FatalAssert(expectE == newE, "Expected equal");
  vc_destroyValidityChecker(vc);
}
Exemple #2
0
void test10()
{
  Flags flags = vc_createFlags();
  VC vc = vc_createValidityChecker(flags);
  Type a = vc_createType(vc, "a");
  Type aa = vc_funType1(vc, a, a);
  Op f1 = vc_createOp(vc, "f", aa);
  Type aa2;
  Op f2 = vc_lookupOp(vc, "f", &aa2);
  FatalAssert(f2 != NULL, "Expected f2 not NULL");
  FatalAssert(f1 == f2, "Expected equal");
  Expr x = vc_varExpr(vc, "x", a);
  Expr f1x = vc_funExpr1(vc, f1, x);
  Expr f2x = vc_funExpr1(vc, f2, x);
  Expr eq = vc_eqExpr(vc, f1x, f2x);
  int res = vc_query(vc, eq);
  printf("eq: %d\n", res);
  vc_destroyValidityChecker(vc);
}
Exemple #3
0
// User-defined types
value caml_vc_createType(value vc, value name)
{
  CAMLparam2(vc, name);
  CAMLreturn(alloc_Type(vc_createType(VC_val(vc),String_val(name))));
}